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
我是一只哈士奇

重写父类方法有几个注意事项:

  • 子类方法名必须要和父类方法名一致
  • 子类方法传入参数必须要和父类方法一致
  • 子类方法的返回值必须要和父类方法返回值一致
  • 子类方法的访问权限应该等于或大于父类方法的访问权限

猜你喜欢

转载自blog.csdn.net/ryuudesu/article/details/84940230