方法重写

重写:需要有继承关系,子类重写父类的方法

  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符,范围可扩大但不能缩小 public>protected>default>private
  4. 抛出的异常:范围可缩小不能扩大

重写的意义:

  1. 父类的功能子类不一定需要或不一定满足需求
//主程序中
public class Application {
    static void main(String[] args) {
        A a1 = new A();
        a1.test1();
        B b1 = new A();
        b1.test1();
        //二者都是静态方法,静态方法是类的方法,与类一起加载
        //因此a1、b1方法的调用由左边定义的类型决定
        //静态方法无法被重写

        A a2 = new A();
        a2.test2();
        B b2 = new A();
        b2.test2();
        //二者都是非静态方法,非静态方法是对象的方法
        //因此a2、b2方法的调用由右边的对象决定
    }
}
//父类中
public class B {
    public static void test1(){
        System.out.println("B1");
    }

    public void test2(){
        System.out.println("B1");
    }
}
//子类中
public class A extends B{
    public static void test1(){
        System.out.println("A1");
    }

    public  void test2(){
        System.out.println("A2");
    }
}

无法重写的方法:

  1. static方法
  2. final 常量
  3. private修饰的方法
posted on 2026-02-05 16:05  AAA神鹰  阅读(2)  评论(0)    收藏  举报