Re: [問題] 繼承與物件使用的問題?

看板java作者 (張昱珩)時間12年前 (2013/05/19 15:38), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/13 (看更多)
B 才有的東西,A 不會知道 private A myObject = new B(); 所產生的 myObject 是被轉型為 A 的 B, 換句話說是一個被當成 A 來用的 B,也就是一個 A。 想要用 B 才有的功能,就不能把他當成 A, 一定要轉成 B 或是包含 B 的物件。 例如: if (myObject instanceof B) { // ((B) myObject).myString } ※ 引述《henry4343 (henry)》之銘言: : 各位好 : 請問各位一個問題 : 我宣告了一個class A : public class A { : } : 然後又宣一個class B 繼承 A : public class B extends A { : } : 因為還有其他class也繼承A,所以我在其他class宣告的時候這樣寫 : public class Main { : //用A來宣告物件,當new時才決定物件型態 : private A myObject; : public function() { : myObject = new B(); : 這個時候問題來了...... : 假如我在Class B中寫了一個public String myString = "123"; : 可是myObject.myString會錯誤,好像找不到myString的樣子 : 我一定要把myString寫在Class A裡面 : 才有辦法使用myObject.myString : 因為我還有其他Class繼承Class A,但每個繼承的Class又希望有自己的物件 : 然後我想要宣告一個全域變數,在我想要的地方在把它宣告成我要的物件 : 我有辦法在各自繼承Class A的Class內寫自己的物件並且使用這種宣告方式來 : 存取各自的物件嗎? : 或者有其他的方法可以達成我想要的需求?感謝各位大大解答了... : } : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.9.134.102
文章代碼(AID): #1Hc85Q72 (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 13 篇):
文章代碼(AID): #1Hc85Q72 (java)