java 板


LINE

※ 引述《king19880326 (OK的啦~我都可以接受)》之銘言: : 這是出自head first java 一書 p.255 : 以下是程式碼 : : ------------------------------------------------------------------------- : abstract class Animal{ : private String name; : public String getName(){ : return name; : } // 3. 2就是執行這裡, 而且把傳入的 theName 設定到private的name裡 : public Animal(String theName){ : name = theName; : } : } : class Hippo extends Animal{ // 2. 1就是執行這裡, 而且super(name)會再執行Animal的建構子 : public Hippo(String name){ : super(name); : } : } : public class MakeHippo{ : public static void main(String[] s){ : Hippo h = new Hippo("Buffy") ; // ^^^^^^^^^^^^^^^^^^^^^ 1.會執行Hippo的建構子 : System.out.println(h.getName()); //^^^^^^^^^^^^ 4.會執行Hippo繼承來的Animal的 // public method getName() 所以會印出 Buffy : } : } 以上不知道有沒有解答到?... : -------------------------------------------------------------------------- : 這是執行結果 : : % java MakeHippo : Buffy : 因為 name 這個變數是private的 : 所以不會被 Hippo 繼承下來 : 而getName() 這個 method 因為是public : 所以會被繼承下來 : 也就是說 : 目前的 Hippo 這個 class 只有自己的 constructor 和 getName : (還有 Animal 的 constructor??) ^^^^^^^^^^^^^ 只有Hippo自己的 建構子(但裡面用super呼叫了Animal的) : 那在我的想法裡 getName 應該是看不到 name 這個 variable OTZ ^^^^^^^^^^這裡的 getName 是繼承Animal的~所以可以取得到值 : 目前我提出的解釋是這樣 : : 就是雖然說繼承可以只寫一份程式碼 : 可是本質上還是跟寫在各自的 class 不大相同 : 我記得之前看一本書上說 : instance method 都會多傳一個 this 當作是參數 : 所以我猜測 Animal 這個 class 裡 getName() 可以說是 : public String getName(Animal this){ : return this.name; : } : 而 Hippo 這個 class 裡的 getName() 或許就是 : public String getName(Hippo this){ : return super.getName(this); : } : 因為有 polymorphism : 所以導致仍然看得到 name 這個 variable : 不知道我這樣說對不對哩 @@>?? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^從以上這段,小弟才疏學淺看不懂在說啥... : 請大家指教 <(__)> 以上。有誤請指教~ 謝謝。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.57.45







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP