方法覆盖
方法覆盖/override/方法重写/override
- 什么情况下考虑使用方法覆盖?
- 当从父类中继承过来的方法无法满足当前子类的业务需求时
- 发生方法涵盖的条款?
- 具有继承关系的父子类之间
- 相同的返回值类型,相同的方法名,相同的形式参数列表
- 访问权限不能变低,可以变高
- 抛出异常不能变多,可以变少
- 返回值类型可以是父类方法返回值类型的子类
- 方法覆盖的小部分:
- @0verride注入标记的方法会在编辑段检查该方法是否重写了类的方法
- 私有方法不能继承,所以不能覆盖
- 构造方法不能继承,所以不能覆盖
- 静态方法不存在方法覆盖,方法覆盖针对的是实例方法
- 方法覆盖说的实例方法,和实例变量无关
public class Person {
String name = "Person";
}
class E extends Person{
String name = "E";
}
class Test{
public static void main(String[] args) {
Person person = new E();
System.out.println(person.name); //结果为Person 而不是由new E()决定
}
}