1. 程式人生 > >Java中子類重寫父類方法

Java中子類重寫父類方法

子類重寫父類方法

子類可以繼承父類的很多特性,但是在有些時候,父類提供的方法會出現不適用的情況,比如之前的例子裡, 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
我是一隻哈士奇

重寫父類方法有幾個注意事項:

  • 子類方法名必須要和父類方法名一致
  • 子類方法傳入引數必須要和父類方法一致
  • 子類方法的返回值必須要和父類方法返回值一致
  • 子類方法的訪問許可權應該等於或大於父類方法的訪問許可權