Re: [問題] 多型請教
※ 引述《freewhat (這就是人生嗎)》之銘言:
: class Building { }
: public class Barn extends Building
: {
: public static void main(String[] args)
: {
: Building build1 = new Building();
: Barn barn1 = new Barn();
: Barn barn2 = (Barn) build1; //1
: Object obj1 = (Object) build1; //2
: String str1 = (String) build1; //3
: Building build2 = (Building) barn1; //4
: }
: }
: 上面的程式,我知道 2 , 4 是對的,3是錯的。
: 書上寫1也是對的,可是這樣 父類別實體轉成子類別 有符合多型的精神嗎?
: 總覺得1怪怪的,能開導我一下嗎XD
通常會搭配 instanceof 做型別檢測,
這種狀況是發生於當某一個子類別具有特別的行為,
而且只有這個類別可以進行時才會這麼做。
比方說 JComponent -> JTextField
JPanel
JLabel
這個繼承結構就可以清楚發現雖然他們有共通介面,
但是各自任務差距很大,某些操作時也需要分別操作。
但是他們仍然擁有放入Container元素的一致性,
簡單來講,就是同中有異,異中有同。
這種同異的區隔,就是多型所帶來的彈性。
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.136.167.169
討論串 (同標題文章)