Java方法覆盖

方法覆盖

方法覆盖/override/方法重写/override

  1. 什么情况下考虑使用方法覆盖?
  • 当从父类中继承过来的方法无法满足当前子类的业务需求时
  1. 发生方法涵盖的条款?
  • 具有继承关系的父子类之间
  • 相同的返回值类型,相同的方法名,相同的形式参数列表
  • 访问权限不能变低,可以变高
  • 抛出异常不能变多,可以变少
  • 返回值类型可以是父类方法返回值类型的子类
  1. 方法覆盖的小部分:
  • @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()决定
    }
}

posted @ 2025-07-05 09:45  如夢初醒  阅读(8)  评论(0)    收藏  举报