Java继承总结

 博客原文 ----> https://www.yanzhaochang.top/read/13

    概念:

      Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

      只支持单继承,不支持多继承。

    修饰符:

      1. public 想让所有类都可以调用这个方法或 属性就用它 

      2. protected 想让它的子类能调用这个方法或属性就用它 

      3. default 想让同一包中的类调用它就用它 (默认)

      4. private 同一类 中才能调用 

         Java继承总结_第1张图片
    好处:

      1. 提高了代码的复用性

      2. 提高了代码的维护性

      3. 建立类与类之间的关系,是实现多态的前提

      4. 简化开发,进而缩短开发周期,降低开发费用

    缺点:

      1. 造成类之间的高耦合,子类依赖于父类的实现细节。

      2. 父类功能的改变对子类也会造成影响

    注意:

      1. 父类的构造方法不能被继承,但是可以通过super关键字去访问父类的构造方法

      2. 父类的方法和属性可以被继承(非私有成员变量、成员方法) ,对于包访问权限成员变量,子类和父类在同一个包下才能继承。

      3. super关键字必须在构造方法的第一行 ,子类构造函数第一行默认就是super()  

     2 代码执行顺序:

        详情请看 Java代码执行顺序

     3 重载和重写的区别

        1 重载

            重载表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数和类型不同),方法的返回值与重载无关。

            注:

                  1 在使用重载的时候只能通过不同的参数样式。例:不同的参数类型,不同的参数个数,不同的参数顺序(前提是参数类型不能一样)。

                  2 不能通过访问权限,返回类型,抛出的异常进行重载。

                  3 方法的异常类型不会对重载造成影响。    

                  4 对于继承来说,如果父类的访问权限是private,那么就不能在子类中进行重载,定义的话,也是相当于在子类中增加了一个新的方法。

        2 重写

            重写表示子类中的方法可以和父类中的某个方法的参数相同,通过子类创建实例对象调用这个方法时,将调用子类中定义的方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,即是多态的一种表现。

            注:

                  1 如果父类的方法的类型的是private类型,那么,子类则不存在覆盖的限制,则相当于子类增加了一个全新的方法。

                  2 覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果。

                  3 覆盖的方法的返回值必须和被覆盖方法的返回值一致。

                  4 覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其异常的子类。

                  5 子类的访问权限只能比父类大,不能比父类小。

你可能感兴趣的:(Java,JavaSE基础)