找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人伊莉需要你的贊助和支持儲值後自動升級用戶組
ge催眠刀劍神域無修霹靂photosho流出
hmn 612surprise遠い君に白銀の弾年上彼女4464069pale car

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]再見龍生,你好人

[繁]孤單一人的異世界

[繁]香格里拉・開拓異

[繁]魔王2099 06-

[繁]2.5次元的誘惑18-

[繁]膽大黨08-
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4790|回復: 5
打印上一主題下一主題

[問題]有關java抽象問題[複製鏈接]

b2581167 該用戶已被刪除
跳轉到指定樓層
樓主
發表於 2018-4-23 06:45 PM|只看該作者|倒序瀏覽
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
請問為什麼要用abstract,用它的好處是?
舉個例子
abstract class round{
  float radius;
  abstract float size();
}
class redball extends round{
  redball(){//input radius };
  float size(){//calculating};
}
.
.
.
已上是讓每個圓型的物體去繼承round,並且計算大小,
我的問題是今天就算把round的size方法刪掉,
...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
頭香
發表於 2018-4-24 08:48 AM|只看該作者
繼承(Inheritance)的目的應該是為了多型(Polymorphism). 沒有寫到背景, 所以不知道是在什麼狀態下. 如果是在學習過程, 或許是在教授抽象函式的作法, 也或許是課程為了後續教學的鋪墊.

抽象類別及抽象函式的作用, 是在繼承體系中, 避免實做個體差異化的方式; 需要差異化的部分, 則由繼承子類別來實作. 父類別不需要預先寫好其中任何一種作法(抽象化, 僅保留共同部分).
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 1

帖子
174
積分
181 點
潛水值
7190 米
3
發表於 2018-4-25 10:53 PM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
我覺得樓上講得很好了,只是多做一點補充,希望可以讓你更理解 johnwanz 說的東西

先講 abstract 的影響

當一個 class 被宣告成 abstract 的時候,我們不能直接用 new 來產生一個 instance。abstract 等於是告訴 compiler 說:「這個 class 我實作了一部份,但是也有一部份我現在還沒有想法不知道該怎麼做,先等等吧」,class 裡面用 abstract 修飾的 method 就是還沒做完的部分,以你的例子來說就是 `abstract float size();`
...
瀏覽完整內容,請先 註冊登入會員
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
663
積分
1128 點
潛水值
20810 米
4
發表於 2018-4-27 02:54 PM|只看該作者
樓上已經把abstract class的功用講得滿清楚的.

關於減少程式碼的部分, 如果單單看abstract class本身和他的字類別, 其實程式碼是變多了. 減少的部分其實是呼叫abstract class的地方

假設說有一個地方需要判斷類別做一些事, 可以這樣寫
if (shape instanceof round)
  // do something
if (shape instanceof triangle)
  // do something

而不需要寫
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
5
發表於 2018-4-30 09:02 AM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
例子是為了說明多型嗎? 我的認知好像有點差異.

我的想法是類似這樣,
* Class有個abstract function move. 子類來繼承, 並實作move.
* 某程式會以abstract class來操作不特定子類, 當遇到需要移動時, 直接呼叫move function.
* 不再需要 if...else...
  1. // 概念如下
  2. main(){
  3. ...
  4. objectA create from subclass
  5. ...
  6. funcA (objectA)
  7. ....
  8. }

  9. function funcA(abstract class objB){
  10.   ...
  11.   objB.move() // I don't care who it is.
  12.   ...
  13. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員





若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

帖子
46
積分
28 點
潛水值
15047 米
6
發表於 2020-4-4 12:29 AM|只看該作者
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
我覺得良葛格的解釋也很清楚....
openhome.cc/Gossip/JavaGossip-V1/AbstractClass.htm

可以參考一下....
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部