Discussion:
[問題] 關於物件產生的繼承問題
(时间太久无法回复)
認清事實 !_!
2007-05-03 09:02:37 UTC
Permalink
有三個class A B C

C繼承B B繼承A

現在在main method內產生物件

A ob1 = new C();

請問一下 這個ob1的物件與A跟C的關係為何?

==

另一個強制轉型問題
如果有另外一個class D 也是繼承A
而A內有宣告move method

這時候用
((Fish)animal).move();
會出現ClassCastException的例外
這個問題好像跟第一個問題有關係

我看的這本書寫的不太清楚 Q_Q
麻煩大家幫我解答一下 謝謝 > <

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.29.40.178
小叮噹愛吃銅鑼燒
2007-05-03 15:21:37 UTC
Permalink
※ 引述《lightening (認清事實 !_!)》之銘言:
: 有三個class A B C
: C繼承B B繼承A
: 現在在main method內產生物件
: A ob1 = new C();
: 請問一下 這個ob1的物件與A跟C的關係為何?

貓(C)->貓類(B)->動物(A)

動物(A) 小花(ob1) = new 貓()

所以小花(ob1)是一隻貓(C),牠也是一隻動物(A) (多型)

: ==
: 另一個強制轉型問題
: 如果有另外一個class D 也是繼承A
: 而A內有宣告move method
: 這時候用
: ((D)ob1).move();
: 會出現ClassCastException的例外
: 這個問題好像跟第一個問題有關係
: 我看的這本書寫的不太清楚 Q_Q
: 麻煩大家幫我解答一下 謝謝 > <

同上
狗(D)->動物(A)

((狗)小花).move();
會出現ClassCaseException
是因為貓怎麼可能將他強制轉型成狗呢:)


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

继续阅读narkive:
Loading...