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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值