Re: [問題] 多型請教

看板java作者 (沉默是金。)時間15年前 (2010/03/24 14:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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
文章代碼(AID): #1BgRWSxM (java)
討論串 (同標題文章)
文章代碼(AID): #1BgRWSxM (java)