1.對多型的理解:同乙個物件在不同時刻體現出來的不同狀態。
簡單來說就是貓和狗都是動物,但他們又有許多不同,貓和狗是動物向下延伸的不同結果,這就是多型。
2.多型的前提:
a:有繼承或者實現關係。
b:有方法重寫。
c:有父類或者父介面引用指向子類物件。
3.多型的分類:
a:具體類多型
class
fu {}
class
ziextends
fu {}
fu f = new zi();
b:抽象類多型
abstract
class
fu {}
class
ziextends
fu {}
fu f = new zi();
c:介面多型
inte***ce
fu {}
fu f = new zi();
4.多型中的成員訪問特點
a:成員變數
編譯看左邊,執行看左邊
b:構造方法
子類的構造都會預設訪問父類構造(注:子類預設呼叫父類的無參構造,等於預設在子類的構造方法中有super();)
c:成員方法
編譯看左邊,執行看右邊
d:靜態方法
編譯看左邊,執行看左邊
package com.lenovo.demo3;
/** * 動物類
*@author petrichor
* */
public
class
animal
public
animal(int a)
public
void
eat()
public
void
sleep()
public
intgeta()
public
void
seta(int a)
}
package com.lenovo.demo3;
/** * 貓類
*@author petrichor
* */
public
class
catextends
animal
public
cat()
public
void
eat()
public
void
sleep()
public
void
fly()
}
package com.lenovo.demo3;
/** * 測試類
*@author petrichor
* */
public
class
tset
}
這個動物和貓類基本體現多型中成員變數、成員方法、構造方法的呼叫,可以看到當我們
animal cat =new cat();
呼叫的a是animal類的。而當
cat cat2 =new cat(5);
呼叫的a是cat類的。
5.多型的好處:
a:提高**的維護性(繼承體現)
b:提高**的擴充套件性(多型體現)
6.多型的弊端:
父不能使用子的特有功能。
現象:
子可以當作父使用,父不能當作子使用。
7.多型中的轉型
a:向上轉型
從子到父
b:向下轉型
從父到子
多型的理解
1 同乙個物件在不同時刻體現出來的不同狀態。2 多型的前提 a 有繼承或者實現關係。b 有方法重寫。c 有父類或者父介面引用指向子類物件。多型的分類 a 具體類多型 class fu class zi extends fu fu f new zi b 抽象類多型 abstract class fu ...
多型的理解
多型 事物執行過程中存在不同的狀態 多型存在的條件 必須具有繼承關係,子類要重寫父類的方法,父類引用子類的物件 例如乙個父類animal 子類 cat 通過輸出結果可以很充分的體現了多型的三個前提 1.必須有繼承關係 cat繼承animal 2.必須重寫父類方法 子類cat重寫了父類的eat,rn,...
多型的理解
物件導向三原則 繼承 封裝 多型。必要條件 繼承 重寫 父類引用指向子類物件。過載是類中多型性的表現,重寫是父類和子類間多型性的表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被 遮蔽 了。如果在乙個...