重写

super注意点

  1. super调用父类的构造方法,必须在构造方法的第一个

  2. super必须只能出现在子类的方法或者构造方法中

  3. super和this 不能同时调用构造方法

     

this

代表的对象不同:

this :本身调用者这个对象

super:代表父类对象的应用

前提

this:没有继承也可以使用

super:只能在继承条件才可以使用

构造方法

this();本类的构造

super();父类的构造

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

  1. 方法名必须 相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大但不能缩小:public>protected>default>private

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

     

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

 

为什么需要重写

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

    import oop1.demo01.A;
    import oop1.demo01.B;

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

           A a = new A();
           a.test();

           //父类的引用指向了子类
           B b = new A();//子类重写了父类的方法
           b.test();
      }
    }
    =====================================================
    public class A extends B{
       @Override //有功能的注释
       //Override 重写
       public void test() {
           System.out.println("A---test()");
      }
    }
    ======================================================
    //重写都是方法的重写,和属性无关
    public class B {
       public  void test(){
           System.out.println("B---test()");

      }
    }    
     
posted @ 2024-01-17 11:58  fightownself  阅读(2)  评论(0编辑  收藏  举报