多型性(面經)

2021-09-19 23:43:52 字數 2517 閱讀 1463

在物件導向的設計中,多型主要體現在向不同的物件傳送同乙個資訊,不同的物件在接收時會產生不同的行為(即方法),對像可以用自己的方法去響應共同的資訊。( 多型:在同乙個時刻,體現出來的不同狀態)

多型性主要體現在兩個方面:方法過載實現的靜態多型性(編譯時多型)

方法重寫實現的動態多型性(又稱動態連編)

編譯時多型:在編譯階段,具體呼叫那個被過載的方法,編譯器會根據引數的不同來靜態確定呼叫的方法。

動態聯編:由於子類繼承了父類的所有屬性(除過私有),所以子類物件可以作為父類物件的使用,程式中凡是使用父類物件的地方,都可以用子類物件來代替,乙個物件可以通過子類的例項來呼叫子類的方法。

多型的前提:

1)必須有繼承關係

子類繼承父類,存在一些特點

2)必須有方法重寫

子類繼承父類,方法重寫的目的,舉例:動物吃的方法,每乙個具體動物吃的東西不一樣,所有必須要方法覆蓋

3)就是必須有父類的引用指向子類物件

(向上轉型)

父類名  fu = new  子類名() ;

通過父類物件的建立是通過子類在堆記憶體新建了了乙個物件,由於子類又繼承了父類,父類的引用(初始化)是通過子類新建物件進行的..

多型中的成員訪問特點:

1)成員變數:

編譯看左,執行看左...

2)成員方法(非靜態):

編譯看左,執行看右(存在方法重寫)

3)構造方法:構造方法(無論子類,還是父類),都是對物件進行初始化

4)靜態成員方法:     編譯看左,執行看左(靜態跟類有關係,算不上方法重寫)

多型的好處:

可以提供**的復用性:繼承保證

可以提高的**的擴充套件性:由多型保證...  (父類的引用指向子類物件)

多型的弊端:

父類引用指向子類物件,

通過父類的引用呼叫子類特有功能,不能呼叫....

不能訪問子類特有功能

father3 f  = new son3() ;   父類的引用指向子類物件 (向上轉型)

可不可以將子類的引用指父類的引用呢? (向下轉型)

將父類的引用強制轉換子類的引用

將父類的引用強制轉換子類的引用  ,向下轉型使用不當,會出現乙個異常:屬於執行時期異常:classcastexception

父類物件和子類物件的轉化需要注意如下原則:

一:子類物件可視為是其父類的乙個物件

二:父類物件不能被當做是其某乙個子類的物件

三:如果乙個方法定義的是父類物件,那麼呼叫這個方法時,可以使用子類物件作為實際引數。

在物件導向的設計中,多型主要體現在向不同的物件傳送同乙個資訊,不同的物件在接收時會產生不同的行為(即方法),對像可以用自己的方法去響應共同的資訊。( 多型:在同乙個時刻,體現出來的不同狀態)

多型性主要體現在兩個方面:方法過載實現的靜態多型性(編譯時多型)

方法重寫實現的動態多型性(又稱動態連編)

編譯時多型:在編譯階段,具體呼叫那個被過載的方法,編譯器會根據引數的不同來靜態確定呼叫的方法。

動態聯編:由於子類繼承了父類的所有屬性(除過私有),所以子類物件可以作為父類物件的使用,程式中凡是使用父類物件的地方,都可以用子類物件來代替,乙個物件可以通過子類的例項來呼叫子類的方法。

多型的前提:

1)必須有繼承關係

子類繼承父類,存在一些特點

2)必須有方法重寫

子類繼承父類,方法重寫的目的,舉例:動物吃的方法,每乙個具體動物吃的東西不一樣,所有必須要方法覆蓋

3)就是必須有父類的引用指向子類物件

(向上轉型)

父類名  fu = new  子類名() ;

通過父類物件的建立是通過子類在堆記憶體新建了了乙個物件,由於子類又繼承了父類,父類的引用(初始化)是通過子類新建物件進行的..

多型中的成員訪問特點:

1)成員變數:

編譯看左,執行看左...

2)成員方法(非靜態):

編譯看左,執行看右(存在方法重寫)

3)構造方法:構造方法(無論子類,還是父類),都是對物件進行初始化

4)靜態成員方法:     編譯看左,執行看左(靜態跟類有關係,算不上方法重寫)

多型的好處:

可以提供**的復用性:繼承保證

可以提高的**的擴充套件性:由多型保證...  (父類的引用指向子類物件)

多型的弊端:

父類引用指向子類物件,

通過父類的引用呼叫子類特有功能,不能呼叫....

不能訪問子類特有功能

father3 f  = new son3() ;   父類的引用指向子類物件 (向上轉型)

可不可以將子類的引用指父類的引用呢? (向下轉型)

將父類的引用強制轉換子類的引用

將父類的引用強制轉換子類的引用  ,向下轉型使用不當,會出現乙個異常:屬於執行時期異常:classcastexception

父類物件和子類物件的轉化需要注意如下原則:

一:子類物件可視為是其父類的乙個物件

二:父類物件不能被當做是其某乙個子類的物件

三:如果乙個方法定義的是父類物件,那麼呼叫這個方法時,可以使用子類物件作為實際引數。

多型與多型性

1.什麼是多型 多型指的是同一種 類事物的不同形態 2.為何要用多型性 1 增加了程式的靈活性 2 增加了程式的可擴張性 多型性 分為靜態多型性和動態多型性 多型性 在多型的背景下,可以在不用考慮物件具體型別的前提下而直接使用物件 多型性的精髓 統一 3.如何用多型 class animal def...

this指標多型性

public class dervied extends base private string name dervied protected string id 2 public dervied public void tellname public void printname public s...

多型性定義

多型性就是多種表現形式,具體來說,可以用 乙個對外介面,多個內在實現方法 表示。舉乙個例子,計算機中的堆疊可以儲存各種格式的資料,包括整型,浮點或字元。不管儲存的是何種資料,堆疊的演算法實現是一樣的。針對不同的資料型別,程式設計人員不必手工選擇,只需使用統一介面名,系統可自動選擇。多型性也分靜態多型...