JAVA中的继承--Java学习笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44494648/article/details/93206412

继承

关键字 extends

普通类

关于继承:在定义一个类时,该类可以是一个类的子类,相当于衍生物.

  • 继承同一个类的不同子类,一般都具有相同的性质,子类继承父类的方法与属性。父类中具有的方法与属性,子类可以不加修改的使用,且不要声明。

  • 方法的重写,父类中的方法,子类中可以重新定义,此时发生重写,重写会覆盖父类中原先的方法。如果父类中的方法如果是 private 修饰的,子类将无法重写,如果子类中存在一个完全相同的方法,则依然不是从写,而是一个新方法。

  • super 关键字。用于访问访问父类中被覆盖的方法或变量;

  • 构造器。在 new 一个一类的对象时,先调用该类(就是子类)的构造器,子类构造器的第一句,永远是先调用父类的构造器,其父构造器的调用方法,super(参数表), super 传递的参数,必须是子类构造器中具有的参数。可以不写,默认实现。

  • 子类中有和父类同名的变量或发生重写是,不会覆盖其空间。

  • 类是单继承,接口可以多继承。

  • 被final 修饰的类,是不能被继承的,成为最终类。

  • 所有的类都有一个共同的父类 object 类,其中有很多重要的方法,而不同的类一般都会去重写自己要用的方法。

       class Father//父类
         {
             Father(int cc,int kk)//构造器
             {
                 this.cc=cc;
                 this.kk=kk;
             }
             Father()
             {}
             private int a; //不能被子类继承
             int cc;
             int kk;
         
             private void pr()
             {
                 System.out.println("private void pr()");//输出"private void pr()"
         
             }
         }
         class Child extends Father{ //继承父类
             Child(int cc,int age,int kk)//子类构造器
             {
                 super(cc,kk);//调用父类构造器,可以默认调用
             }
         
             int age;
             int cc=5;
              void pr()
              {
                  System.out.println(super.cc);//使用super 可以访问到被子类覆盖的父类方法或属性
              }
         }
    

    `

继承,相当于分类,所有继承一个父类的,可以属于一种类,并且,每一个只能有一个父类。相当于一个动物,属于犬科就不能属于猫科。而猫科这个类和犬科这个类,同时继承动物这个类。

抽象类的继承

  • 抽象类的子类必须是抽象类或者子类实现类抽象方法。

接口的继承

接口相当于规则,所以,一个类可以同时遵守多个规则,所以接口可以多继承。

  • 和抽象类类似,接口可以被普通类实现或抽象类,或被接口继承。

总结

  • 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承为多态提供了可能,
  • 提高了代码的复用性
    提高了代码的维护性
    建立了类与类之间的关系,继承是多态的前提。
    在一定程度上,造成类与类之间的强关联,即所谓的高耦合。
    父类功能的改变对子类也会造成影响。
    父类有的,子类可以继承。
    父类有的,子类可以去改变。
    父类没有的,子类可以添加。

这是学习笔记,有问题的地方希望留言指正。

猜你喜欢

转载自blog.csdn.net/weixin_44494648/article/details/93206412