Re: [問題] 繼承與物件使用的問題?

看板java作者 (痞子軍團團長)時間12年前 (2013/05/21 11:30), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串5/13 (看更多)
: 推 henry4343:應該是你講的這樣 我想做的是讓class繼承某個class 05/21 09:39 : → henry4343:然後class又可以擁有各自的物件讓我使用 05/21 09:41 : → henry4343:如果直接把每個class都宣告成物件就解決了 但這樣很麻煩 05/21 09:44 : → henry4343:所以才宣告父類別,然後在我要的地方建成我要的class 05/21 09:46 說實在的,我實在搞不懂你要的到底是什麼? 你這兩篇打了一堆字,不知道是我最近 PHP 寫多了還是怎麼的 (PHP:棍... 干我屁事) 我完全無法理會你的中文 像「把每個 class 都宣告成物件」這句話就很詭異 你這段推文用了許多次「物件」這個詞 那到底是「class 的 instance」的 object? 還是你在指所有 class 的老祖宗 java.lang.Object? (這不是撒尿牛丸,你不能把所有東西都混在一起用同一個名詞去講) 你可不可以提供一個比較劇本的劇本(什麼鬼?) 至少把你的各個 class 取個名字什麼的 為了又避免說我在酸人,然後今天終於睡得比較飽了 我再來示範一次怎麼問問題 //// 隔山打牛,模擬原 po 問題開始 //// 我有幾個 class,假設叫 ChildA, ChildB, ChildC 希望它們共同繼承 Parent 這個 class 然後 ChildA, ChildB, ChildC 各自可以有自己獨特的 attribute/field 但是宣告的時候還是用 Parent 來宣告,這樣使用起來才方便 也就是說 Parent a = new ChildA(); Parent b = new ChildB(); Parent c = new ChildC(); System.out.println(a.attr.getClass()); System.out.println(b.attr.getClass()); System.out.println(c.attr.getClass()); 三個印出來的 class name 要(可以)不一樣 //////// 我先把醜話說在前面 無論我這段隔山打牛多麼曲解你的意思,你都不能說我猜錯了 因為你一開始就沒有辦法寫的讓人家懂 就好像你對別人說「我愛著你」,等到對方回答「那在一起吧」 才跟人家說「我的意思是『我礙著你』,你誤會我了」 如果你住在米花市的話,你大概馬上就會變成被害者了 好,如果問題是這樣的話 那麼第一個問題就是,為了確保 ChildA 等等 一定有 attr 這個 attribute/field 所以改成一定得透過 getter 來取得 System.out.println(a.getAttr().getClass()); 其實到這邊,就已經算解決你的問題了 因為 Parent(假設是 abstract class,interface 也差不多) abstract class Parent { abstract Object getAttr(); } 這樣就可以強制 ChildA 等等一定要 implement 這個 method 至於 ChildA 們怎麼搞 getAttr() 就看個人高興 當然,你要更硬派(?)一點,也可以這樣, 不過 abstract class 限定就是了 而且萬一不知道 getAttr() 要幹麼的人會寫錯 abstract class Parent { public Object attr; Parent() { genAttr(); } abstract void getAttr(); } 至於 ChildA、ChildB、ChildC 的 attr 又希望在同一個家族裡頭 那就是另外一個故事了 ======= 好吧,我承認我是來混文章數的 -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.0.70

05/21 13:56, , 1F
還米花市咧,害我差點把一口水全噴電腦上了
05/21 13:56, 1F

05/21 15:50, , 2F
真相只有一個~就是pH 質 < 7~
05/21 15:50, 2F
文章代碼(AID): #1HckfShD (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 13 篇):
文章代碼(AID): #1HckfShD (java)