方法重寫與多型

2021-10-08 10:21:25 字數 2217 閱讀 1475

方法的重寫:子父類出現了一模一樣的方法

注意:返回值型別可以是子父類

子類根據需求對從父類繼承的方法進行重新編寫

重寫時,可以用super.方法的方式來保留父類的方法

構造方法不能被重寫

在繼承的情況下,子類的方法滿足以下條件:

1、方法名相同

2、引數列表相同

3、返回值型別相同,或者是父類返回值型別的子類

4、訪問修飾符的許可權不能小於父類

5、丟擲的異常不能大於父類(嚴於)

區別:

練習:使用方法重寫優化電子寵物系統,實現如下效果

;}多型是同乙個引用型別,使用不同的例項而執行不同操作,即同一種事物,由於條件不同,產生的結果也不同

使用多型的條件:頻繁修改**,**可擴充套件性、可維護性差,這種情況下,可使用多型優化

示例:

public

class

dogextends

pet}

}public

class

penguin

extends

pet}

}

抽象方法:

抽象方法沒有方法體

抽象方法必須在抽象類裡

抽象方法必須在子類中被實現,除非子類是抽象類

抽象類字元修飾

例如:

public

abstract

class

pet

向上轉型:父類的引用指向子類物件,自動進行型別轉換

《父型別》 《引用變數名》 = new 《子型別》();

如:pet pet=new dog();

向下轉型:將乙個指向子類物件的父類引用賦給乙個子類的引用,即:父類型別轉換為子類型別

《子型別》 《引用變數名》 = (《子型別》 )《父型別的引用變數》;

如:dog dog=(dog)pet;

instanceof運算子

if

(pet instanceof

dog)

{ dog dog =

(dog)pet;

dog.

playdish()

;

注意:使用instanceof時,物件的型別必須和instanceof後面的引數所指定的類在繼承上有上下級關係

方法重寫與多型

當從父類繼承的方法不能滿足子類的需要時,可以在子類中對這一方法進行重寫 覆蓋 以符合需求。重寫方法和被重寫的方法必須具有相同的方法名 重寫方法和被重寫方法引數列表相同 重寫方法的返回值型別和父類的返回值型別是同類或者是子類 重寫方法不能縮小被重寫方法的訪問許可權,public class depar...

多型方法重寫

多型 指的是一種事物,在不同時刻所表現出來的不同狀態 貓是型別,貓也是一種動物 多型的前提 1.要有繼承關係 2.要有方法重寫,當然不重寫也可以,但是沒有太大意義 3.多型 就是 父類引用指向子類物件 public class mytestclass animal class dog extends...

重寫與多型

一.方法重寫規則 1.方法名相同。2.引數列表相同。3.返回值型別相同或者是其子類。4.訪問許可權不能嚴於父類。二.抽象方法 abstract也可用於方法 1.抽象方法沒有方法體。2.抽象方法必須在抽象類裡。3.抽象方法必須在子類中被實現,除非子類是抽象類。三.多型 是具有表現多種形態的能力的特徵。...