我有兩個類:Teacher
和Coordinator
。 Coordinator
延伸Teacher
。Java鑄造對象
基本上我想要一個實例變量,可以採取Teacher
實例或Coordinator
實例。
我知道這是很容易可以通過只寫Teacher exp = new Teacher()
或Teacher exp = new Coordinator()
,但是當我這樣做,我只能當我申請new Coordinator()
或new Teacher()
的參考變量是正常訪問Teacher
方法和屬性。我的問題是,還有另一種方法,我只使用一個實例變量,可以分配給教師或協調員對象,並使用此變量來調用分配給對象引用變量的對象的任何屬性/方法?
你意識到類可以從現有的類擴展。你已經編寫的代碼如何預測你沒有擴展的類的方法?反射API是唯一的理智機制。其他選項是編寫可保證指定所需類的協議的接口。 –
你如何知道它是否是「協調員」? – MrSmith42