設employee(雇員)是超類 anager(經理)的子類
一. 可以將乙個子類物件賦給超類變數
employee staff=new employee();
manager boss= new manager();
staff=boss; (boss是子類) 注意賦值是右傳左
二. 然而不能將超類的引用賦值給子類變數
employee staff=new employee();
比如 manager boss1=staff;
所有經理都是雇員,但雇員並不都是經理。
例子:employee staff=new manager();
staff將直接呼叫父類的方法,當然如果子類重寫了父類的方法,那麼呼叫的就是子類的方法!
這條語句的好處是有多個子類時,不用每個子類去寫乙個相同方法,直接父類中寫乙個就行了。
壞處就是staff不能呼叫子類中有而父類中沒有的方法(即子類特有的方法)
那麼應該怎麼辦呢?
manager m=null; // 必須有此過程,即必須要重新建立乙個物件!!!!*
if( staff instanceof manager)
{m = (manager) staff;
用這個m物件去呼叫子類特有的方法!!!
JAVA多型理解
什麼是多型 物件導向三大特性 封裝,繼承,多型。從一定角度來看,封裝和繼承幾乎都是為多型準備的 多型的定義 不同類物件對同一訊息做出響應 實現多型的技術稱為 動態繫結,是指在執行期間判斷所引用物件的實際型別,根據其型別呼叫相應方法 多型的作用 消除型別之間的耦合關係 同一事件在不同物件上產生不同結果...
Java 多型的理解
物件導向程式設計有三個特徵,即封裝 繼承和多型。封裝隱藏了類的內部實現機制,從而可以在不影響使用者的前提下改變類的內部結構,同時保護了資料。繼承是為了重用父類 同時為實現多型性作準備。那麼什麼是多型呢?要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類cat,它繼承了animal類,那麼後者...
Java多型的理解
要想清楚的理解什麼是多型,就必須要了解 向上轉型 這個概念。下面我們通過乙個例子來介紹向上轉型。public class person protected void sleep public void play public class student extends person public c...