Re: [問題] 以父類別宣告然後以子類別的建構子new
※ 引述《qrtt1 (愚人)》之銘言:
: ※ 引述《jb0802 (james)》之銘言:
: : 想請問在網路上看到或書上看到的code~~常常有這樣的情形
: : Parent p = new son();
: : 父類別 子類別
: : Map m = new HashMap();
: : Link l = new LinkedList();
: : 我知道m和l雖然宣告為父親的,但是是可以使用兒子的方法。
: : 其實應該就是一個兒子的物件,但這樣與
: : HashMap = m = new HashMap();
: : LinkedList l = new LinkedList();
: : 這樣宣告有什麼分別,會有特別的情況需要使用上者嗎
: : 或者純粹只是程式的可讀性,因為只需用到父類別的方法,所以沒必要宣告成子類別
: 忍者 n = new 自來也();
: 忍者 m = new 綱手();
: n.招喚術(); // 文太出現了
: m.招喚術(); // 蝸蝓出現了
: ==============================
: 這就是抽象化, 不管子類怎麼實作
: 對於父類知道有招喚術即可.
: 你並不用指揮某一個忍者要招喚什麼 (他也不一定會(實作))
: 只要有東西出來就好 XD
還有一點問題~~所以再發另一篇文~~
這樣與使用 自來也 n = new 自來也(); 所做出來的物件n應該和
忍者 n = new 自來也(); 這兩個應該是一樣的n吧
會有什麼不一樣的地方嗎?
另外,如果兩者一樣,我個人的習慣是 當然是把他宣告成 自來也 n=new 自來也();
因為這樣不是讓自己比較清楚它是自來也嗎?
有些自來也有且忍者沒有的方法,我也會記得它可以被拿來叫用。
另外一個問題,會使用這樣的原因是因為父類別有abstract的方法
在子類別給實作了才會有這樣的宣告嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.155.150
推
03/04 21:41, , 1F
03/04 21:41, 1F
討論串 (同標題文章)