首页 > 其他分享 >方法重写

方法重写

时间:2022-10-01 18:55:17浏览次数:52  
标签:静态方法 子类 test 重写 方法 public

方法重写

重写

  • 需要有继承关系,子类只能重写父类的方法!

  1. 方法名必须相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大但是不可以缩小 public >Protected>Default>private

  4. 抛出的异常:范围,可以被缩小但是不能被扩大:ClassNotFoundException --> Exception(大)

    重写:子类的方法和父类必须一致:方法体不同

为什么需要重写:

  1. 父类的功能,子类并不一定都需要,或者不够满足

    快捷键:Alt + Inser

=============================================================================

代码演示---父类B

package com.tea.Demo05;

//重写是方法的重写,与属性无关
public class B {

   public void test(){
       System.out.println("B=>test()");
  }

}


//   public static void test(){
//       System.out.println("B=>test()");
//   }

代码演示---子类A

package com.tea.Demo05;

//继承关系
public class A extends B{

   //Override 重写
   @Override
   public void test() {
       System.out.println("A=>test()");
  }
}

//   public static void test(){
//       System.out.println("A=>test()");
//   }

代码演示---测试类

package com.tea.Demo05;

public class Application {

   //静态的方法与非静态的方法区别很大
   //静态方法: 方法的调用只和左边,即定义的数据类型有关
   //非静态方法: 才可以重写
   public static void main(String[] args) {

       //方法的调用只和左边,即定义的数据类型有关
       A a = new A();
       a.test();  //A=>test()

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

=============================================================================

重写的注意事项

1. 当A类与B类中是静态方法时,测试类的运行结果会表明

【静态方法: 方法的调用只和左边,即定义的数据类型有关】

2. 当A类与B类中是非静态方法时,测试类的运行结果会表明

【非静态方法可以重写】

=============================================================================

标签:静态方法,子类,test,重写,方法,public
From: https://www.cnblogs.com/bobocha/p/16747594.html

相关文章