多型的好處與弊端

2021-10-02 06:03:28 字數 1196 閱讀 8437

當父類的引用指向子類物件時,就發生了向上轉型,即把子類型別物件轉成了父類型別。向上轉型的好處是隱藏了子類型別,提高了**的擴充套件性。

但向上轉型也有弊端,只能使用父類共性的內容,而無法使用子類特有功能,功能有限制。看如下**

//描述動物類,並抽取共性

eat方法

abstractclassanimal

// 描述狗類,繼承動物類,重寫

eat方法,增加

lookhome方法

classdogextendsanimal

voidlookhome() }

// 描述貓類,繼承動物類,重寫

eat方法,增加

catchmouse方法

classcatextendsanimal

voidcatchmouse() }

publicclasstest

dog

d= (dog)

a; //

向下轉型 d

.lookhome();//

呼叫狗類的

lookhome方法

} }

總結一下:

1. 什麼時候使用向上轉型:

當不需要面對子類型別時,通過提高擴充套件性,或者使用父類的功能就能完成相應的操作,這時就可以使用向上轉型。

如:animal

a=newdog(); a

.eat();

2. 什麼時候使用向下轉型

當要使用子類特有功能時,就需要使用向下轉型。

如:dog

d= (dog)

a; //

向下轉型 d

.lookhome();//

呼叫狗類的

lookhome方法

向下轉型的好處:可以使用子類特有功能。

弊端是:需要面對具體的子類物件;在向下轉型時容易發生classcastexception型別轉換異常。在轉換之前必須做型別判斷。

如:if( !a instanceof dog)

多型 多型的好處(擴充套件性)

多型的好處 c 中多型 理論結合實踐的理解 1 多型 同乙個物件,在不同時刻體現出來的不同狀態。2 多型的前提 1 要有繼承關係或實現關係 介面 2 要有方法重寫 3 要有父類或者父介面引用指向子類 fu f new zi 注意 形參實參形式的 形參父類實參子類 3 多型的分類 1 具體類多型 cl...

多型的好處 例題介紹

namespace 多型的好處 public person 空建構函式 public int age public string name public virtual void sayhello 我的姓名是 age,name public override string tostring clas...

Java物件導向 多型的好處

例如一段 class computer class pc extends computer class nb extends computer class test 此時就會有小夥伴有疑問,對於上面的程式,我這樣寫不也挺好嗎 pc pc new pc nb nb new nb pc.turnon n...