Java面向对象10——方法重写

方法重写

static :
 
 
 package oop.demon01.demon05;
 
 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
          */
    }
 }
 ---------------------------
     //A
 package oop.demon01.demon05;
 
 //继承
 public class A extends B{
     public static void test(){
         System.out.println("A=>test");
    }
 }
 
 ---------------------------
        //B
     package oop.demon01.demon05;
 
 // 重写都是方法的重写,与属性无关
 public class B {
 
     public static void test(){
         System.out.println("B=>test");
    }
 }
 
非静态:
 package oop.demon01.demon05;
 
 public class Application {
     public static void main(String[] args) {
 
         //静态方法和非静态方法的区别很大!
             //静态方法:   方法的调用只和左边,定义的数据类型有关
         A a=new A();
         a.test();//A
 
         //父类的引用指向了子类
         B b=new A();// 子类重写了父类方法
         b.test();//A
         /*
         输出结果:
         A=>test
         A=>test
          */
    }
 }
 --------------------------------
 package oop.demon01.demon05;
 
 //继承
 public class A extends B{
 
     //Override 重写
     @Override//注解: 有功能的注释!
     public void test() {
         System.out.println("A=>test");
    }
 }
 --------------------------------
 package oop.demon01.demon05;
 
 // 重写都是方法的重写,与属性无关
 public class B {
 
     public  void test(){
         System.out.println("B=>test");
    }
 }
 
方法重写总结
 重写: 需要有继承关系,子类重写父类的方法!
     1. 方法名必须相同
     2. 参数列表必须相同
     3. 修饰符: 范围可以扩大,不可以缩小:   public>Protected>Default>private
     4. 抛出的异常: 范围,可以被缩小,但不能扩大: ClassNotFoundException ---> Exception(大)
     
 重写总结: 子类的方法与父类必须一致; 方法体不同!
 
 为什么需要重写:
    1. 父类的功能,子类不一定需要,或者不一定满足
    alt + insert : override

学习内容源自视频:b站狂神说Java

 

posted @ 2021-08-01 11:13  时间最考验人  阅读(92)  评论(0编辑  收藏  举报