方法重写

方法重写

  • 重写都是方法的重写,和属性无关
  • 重写只和非静态方法有关,和静态方法无关
  • 重写的关键词只能是public
重写:
  1. 重写需要有继承关系,子类重写父类的方法

  2. 参数列表必须相同

  3. 修饰符:范围只能扩大不能缩小(public <-- protected <-- default <-- private)

  4. 抛出的异常范围可以缩小不能扩大

  5. 子类的方法和父类必须要一致,方法体不同

为什么需要重写
  1. 父类的功能,子类不一定需要或不一定满足
(1)静态方法的调用只和(左边)定义的数据有关
package Demo06;

public class B {
    public static void test(){
        System.out.println("B-->test()");
    }
}
package Demo06;

public class A extends B{
    public static void test(){
        System.out.println("A-->test()");
    }
}

父类的引用可以指向子类

package Demo06;

public class Application {
    public static void main(String[] args) {
        //方法的调用只和(左边)定义的数据有关
      A a = new A();
      a.test();//调用A类的方法

        //父类的引用指向了子类
      B b = new A();
      b.test();//调用B类的方法
    }
}

运行结果

A-->test()
B-->test()
(2)非静态方法的重写

把上面的静态方法改成非静态方法

对A类:Alt + Ins ——>重写方法

请添加图片描述
请添加图片描述

然后就会出现这个

请添加图片描述

重写一下里面的方法

package Demo06;

public class A extends B{
    @Override //注解:有功能的注释1
    public void test() {
        System.out.println("A-->test()");
    }
}

B类和main方法不变

请添加图片描述

运行结果

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值