當從父類繼承的方法不能滿足子類的需要時,可以在子類中對這一方法進行重寫(覆蓋),以符合需求。
重寫方法和被重寫的方法必須具有相同的方法名;
重寫方法和被重寫方法引數列表相同;
重寫方法的返回值型別和父類的返回值型別是同類或者是子類;
重寫方法不能縮小被重寫方法的訪問許可權,
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.抽象方法必須在子類中被實現,除非子類是抽象類。三.多型 是具有表現多種形態的能力的特徵。...