Java中子類重寫父類方法
阿新 • • 發佈:2018-12-12
子類重寫父類方法
子類可以繼承父類的很多特性,但是在有些時候,父類提供的方法會出現不適用的情況,比如之前的例子裡, print()
方法就沒有打印出狗狗的品種,這種情況下就可以通過重寫父類的方法來解決問題,給它打印出來。
父類Pet類的程式碼不需要改變,在子類Dog類的基礎上作改動即可。先貼一下原來的Dog類:
public class Dog extends Pet {
private String strain;
public Dog(String name, String strain) {
super(name);
this.strain = strain;
}
public String getStrain() {
return strain;
}
public void setStrain(String strain) {
this.strain = strain;
}
}
現在需要把狗狗的品種 strain 一起輸出,則對父類Pet類中的 print()
方法進行重寫。父類的 print()
:
public void print() {
System.out.println("我的名字叫" + this.name + ",我的健康值是" + this.health+ ",與主人的親密度是" + this.love);
}
可見並沒有輸出 strain 這個變數,因為父類本身也不存在這麼個變數,於是開始重寫父類的這個 print()
方法,在Pet類裡新定義一個 print()
:
public void print() {
super.print();
System.out.println("我是一隻" + strain);
}
重寫完成,執行結果:
我的名字叫二哈,我的健康值是100,與主人的親密度是0
我是一隻哈士奇
重寫父類方法有幾個注意事項:
- 子類方法名必須要和父類方法名一致
- 子類方法傳入引數必須要和父類方法一致
- 子類方法的返回值必須要和父類方法返回值一致
- 子類方法的訪問許可權應該等於或大於父類方法的訪問許可權