java多型總結

2021-08-25 22:50:02 字數 1825 閱讀 4183

簡單的說就是父類引用指向子類物件.一種方法, 多種實現.

規則:成員變數:編譯看左邊(父類),執行看左邊(父類);

成員方法:編譯看左邊(父類),執行看右邊(子類,動態繫結).

public class polymorphic }/*

成員變數

編譯看左邊(父類),執行看左邊(父類)

成員方法

編譯看左邊(父類),執行看右邊(子類)。動態繫結

靜態方法

編譯看左邊(父類),執行看左邊(父類)。

(靜態和類相關,算不上重寫,所以,訪問還是左邊的)

只有非靜態的成員方法,編譯看左邊,執行看右邊

*/class father

public static void method()

}class son extends father

public static void method()

}

輸出:

father static method

多型中的成員變數:

多型中的成員方法:

基本資料型別和引用資料型別的自動型別提公升和強制型別轉換:

向上自動轉型就不說了,主要看一下向下的強制轉換。

多型的好處:

提高了**的維護性(繼承保證)

提高了**的擴充套件性(由多型保證)

可以當作形式引數,可以接收任意子類物件

public class test 

}class person

}class superman extends person

public void fly()

}

輸出:

abc

超人說話

到處飛救人

多型的弊端:

不能使用子類的特有屬性和行為。需要向下強制型別轉換才行。

多型接收任意子類物件:

public class test 

//cat c = new dog();狗是乙隻貓,這是錯誤的

/*public static void method(cat c)

public static void method(dog d) */

//如果把狗強轉成貓就會出現型別轉換異常,classcastexception

public static void method(animal a) else if (a instanceof dog) else }}

/** a:多型的好處

* a:提高了**的維護性(繼承保證)

* b:提高了**的擴充套件性(由多型保證)

* b:案例演示

* 多型的好處

* 可以當作形式引數,可以接收任意子類物件

* c:多型的弊端

* 不能使用子類的特有屬性和行為。

*/class animal

}class cat extends animal

public void catchmouse()

}class dog extends animal

public void lookhome()

}

輸出:

貓吃魚

貓抓老鼠

狗吃骨頭

狗看家

java 多型總結

多型 01 父類的引用指向自己子類的多型 02 多型的存在提高了程式的擴充套件性 03 多型的前提 必須是類與類之間有關係 要麼繼承要麼實現 還有就是存在覆蓋 04 子類向上轉型 和父類向下轉型 instanceof abstract class animal class car extends a...

java的多型總結

老畢的 編譯看左邊,執行看右邊 多型執行 對物件導向語言中理解多型 繼承很有幫助 在多型中,非靜態成員函式的特點 編譯看左邊,執行看右邊。老畢在講到多型執行問題時,結合下面的例子,給我們總結了一套口訣 成員變數,靜態方法看左邊 非靜態方法 編譯看左邊,執行看右邊。意思是 當父類變數引用子類物件時 f...

Java基礎總結之多型

可以理解為事物存在的多種體現形態,多型的出現大大的提高程式的擴充套件性,當然有利必有弊,雖然提高了擴充套件性,但是只能使用父類的引用訪問父類中的成員。多型體現在程式裡就是父類的引用指向了自己的子類物件,即父類的引用也可以接收自己的子類物件。格式 父類名 物件名 new 子類名 這裡有個前提是必須是類...