方法的重写
概念:方法的重写就是子类集成父类之后,可以对父类的同名,同参数的方法进行覆盖。在子类对象调用该方法的时候,用的是子类方法中重写的逻辑。父类对象调用的时候,就是父类方法自己的逻辑。
我们可以新建两个类,一个People类,一个Student类,Student类 extends People类。
people类中有eat()方法:
Student中也有eat()方法,并且对People类中的eat方法实现了重写。
再调用eat方法的时候,如果对象是Student,那么执行的就是Student类中的重写方法:
如果只是People方法去调用eat,就是people类中原生的eat方法
重写的特殊情况
1、子类不能重写父类中 private修饰的方法,
例如我们把People中的eat方法修饰符改为private
在Student类继承People之后,尝试重写eat()方法,发现没有重写方法的标志。
2、 子类重写的方法的修饰符不小于父类的方法的修饰符
将People中的eat方法的修饰符改为 protected
在Student中尝试进行重写:修饰符为 public 、protected 都可以
3、 父类中的方法的返回值为Void,则子类重写的方法返回值也只能是Void
4、 父类中的方法的返回值为A类型,则子类重写的方法返回值可以是A类型,也可以是A类型的子类
在People类中增加一个返回值为Object,名称为getNum()的方法
在Student中重写名称为getNum()的方法,返回值类型可以为String ,可以看到也实现了重写