Re: [問題] 父變數指到子物件的繼承問題

看板java作者 (痞子軍團團長)時間11年前 (2013/04/27 21:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《Shrugg (淚眼問花花不語)》之銘言: : 對不起,又碰到觀念性問題想不通了,所以藉休息思考時間又來這邊尋找溫情.嘻 ==" 我真的覺得你對 Java 版的誤會很深 其實這個也算是經典 FAQ 了 但是,我也不知道該給你什麼關鍵字爬文 [炸] : 請問當程式跑到 Father f = new Son()後,從記憶體來看 : 不是就一個Stack區的變數f指向Heap區的一個Son物件嗎? : 如果這時候執行f.show() 為什麼IntelliSense只能選擇父類別裡的show()? ^^^^^^^^^^^^ 敢問這是啥東西(對不起,我應該先 google [逃]) : 但是如果父類跟子類同時有定義show(),即使選用的是父類的show() : 卻是顯示子類show()的內容呢? : 從物件來看,父類跟子類會有不同的方法跟成員變數,可以理解是不同的東西 : 但是變數的目的不是存值就是存參照,變數為什麼會有父跟子的區分呢? : 謝謝. 我覺得 andymai 跟 coolcomm 回的都很好 但是好到我這種智商有點看不懂 [淚目] 所以我也用我的方法詮釋一下... 反正這種合理的灌水方式應該不會有人反對 \囧/ 請想像一下期中考的場景(大學應該剛考完吧?) 同學們來自四面八方 雖然唐僧有說過「妖是妖他媽生的,人是人他媽生的」 但是對於教授來說,管你是誰生的,對他來講就是學生 而學生就要能考期中考 (謎之聲:WTF) //在班級組成的時候 學生[] 班級成員 = new 學生[3]; 班級成員[0] = new 人(); 班級成員[1] = new 妖(); 班級成員[2] = new 人妖(); //考試的時候管你是人還是妖,反正每個人都給我交卷 ArrayList<考卷> 期中考考卷 = new ArrayList<考卷>; for(學生 foo : 班級成員) { 期中考考卷.add(foo.交卷(期中考題目)); } 但是如果全班不管是人、妖、還是人妖 交出來的考卷都一模一樣,擺明了就是作弊,這不科學 應該每個人有自己寫考卷的方法 當然,也可以設計 `學生` 這個 class 本來就有 `交卷()` 這個 method 我大概會設計成 public 考卷 交卷(考卷 題目) { return 題目; //就是交白卷啦 \囧/ } 這樣如果同學不上進,不實作自己的 `交卷()` method 系統也不會 crash... 至於人、妖、人妖、學生(以及其他可能的 class) 疊出來的 class 大樓會不會有多重繼承之類 blahblah 的困擾...... 下課! 下課! -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.248.51
文章代碼(AID): #1HUz2i4n (java)
討論串 (同標題文章)
文章代碼(AID): #1HUz2i4n (java)