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

伊莉討論區

搜索
發表文章前請先閱讀相關版規儲值後自動升級用戶組認識好友、聊天,分享生活趣事
七龍珠火影中文gd中文母乳幼女
我打造了凡人修仙久我まど民工女友無碼流出1971287夢幻西

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

河南商丘 男子不滿店

[簡]通靈王 FLOWERS -

[繁]佐佐木與文鳥小嗶

〖高清繁〗霹靂天機貳

[繁]SYNDUALITY Noir

✡ 吞噬星空・109・20
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4167|回復: 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方法刪掉,
...
瀏覽完整內容,請先 註冊登入會員
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
發表於 2018-4-24 08:48 AM|顯示全部樓層
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
繼承(Inheritance)的目的應該是為了多型(Polymorphism). 沒有寫到背景, 所以不知道是在什麼狀態下. 如果是在學習過程, 或許是在教授抽象函式的作法, 也或許是課程為了後續教學的鋪墊.

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

使用道具檢舉

Rank: 1

帖子
170
積分
186 點
潛水值
5980 米
發表於 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 米
發表於 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 米
發表於 2018-4-30 09:02 AM|顯示全部樓層
例子是為了說明多型嗎? 我的認知好像有點差異.

我的想法是類似這樣,
* 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. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員





如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

帖子
46
積分
28 點
潛水值
15047 米
發表於 2020-4-4 12:29 AM|顯示全部樓層
我覺得良葛格的解釋也很清楚....
openhome.cc/Gossip/JavaGossip-V1/AbstractClass.htm

可以參考一下....

使用道具檢舉

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

Powered by Discuz!

© Comsenz Inc.

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