方法重寫與多型

2021-10-08 10:25:53 字數 1856 閱讀 2302

當從父類繼承的方法不能滿足子類的需要時,可以在子類中對這一方法進行重寫(覆蓋),以符合需求。

重寫方法和被重寫的方法必須具有相同的方法名;

重寫方法和被重寫方法引數列表相同;

重寫方法的返回值型別和父類的返回值型別是同類或者是子類;

重寫方法不能縮小被重寫方法的訪問許可權,

public

class

department

子類:

public

class

persondept

extends

department

public

intgetcount()

public

void

setcount

(int count)

public

void

printdetail()

}

在父類中,我們有了printdetail()方法,但是在子類中有自己特有的count屬性,在父類中無法通過printdetail()方法展現出來,滿足不了子類的需要,這時候我們就需要對方法進行重寫。重寫乙個和父類方法名相同,引數列表相同的方法。通過super()訪問父類原先的方法,在列印子類特有的方法。

public

class

test

}

在執行測試時我們只需要列印乙個printdetail()就可以直接得出結果,這裡沒有設定部門人數,所以預設是0.

多型就是指同乙個行為具有不同的表現能力。例如乙個主人帶自己的寵物去看病。對主人而言,不論是帶狗狗去看病還是帶貓咪去看病,其實都是帶寵物去看病,這是一種行為。但是在實際生活中其實並不完全如此。如果只是單純的說是帶寵物去看病,別人就無法詳細了解到到底是狗要去看病還是貓要去看病。這時,我們就可以在「狗」類和「貓」類下定義乙個自己特有的方法。當主人要帶寵物去看病時,顯示出到底是帶誰去看病。

**實現:

寵物類是父類:

public

class

pet}

dog類繼承pet類,重寫tohospital();

public

class

dogextends

pet

貓咪同樣如此

public

class

catextends

pet}

在測試中輸出結果:

多型對已存在的**具有可替代性;

多型對**具有可擴充性。增加新的子類不影響已存在類的多型性、繼承性;

多型在應用中體現了靈活多樣的操作,提高了使用效率。簡化了**的編寫和修改過程。

方法重寫與多型

方法的重寫 子父類出現了一模一樣的方法 注意 返回值型別可以是子父類 子類根據需求對從父類繼承的方法進行重新編寫 重寫時,可以用super.方法的方式來保留父類的方法 構造方法不能被重寫 在繼承的情況下,子類的方法滿足以下條件 1 方法名相同 2 引數列表相同 3 返回值型別相同,或者是父類返回值型...

多型方法重寫

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

重寫與多型

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