美文网首页
javaSE_day08_继承

javaSE_day08_继承

作者: 智慧之门 | 来源:发表于2018-05-21 14:32 被阅读0次

    继承

      根据 已有类 派生出 新类 的技术。

    优势

      1.代码重用

      2.便于维护(高耦合)

    注意: java类 单一继承:一个 父类 可以有多个 子类,但是子类 只能 有一个 父类。

    继承父类:子类 继承 父类中的 ‘所有’ 成员 ,就像自己类中定义的一样使用。

    子类不能继承父类中的

      1.父类中 private修饰的成员;

      2.子类 和 父类 不在同一程序包下 ,使用默认访问修饰符的成员;

      3.构造器。

    --------------------------------------

    继承设计原则

    里氏替换原则(LSP):在一个软件系统中,子类对象可以替换所有使用的父类对象,且程序行为没有变化。

    --------------------------------------

    重载: 通常一个类,方法名相同,参数列表不同,返回值无关

    方法重写

      子类中,方法名,参数,返回值类型与父类中的 一样。

    注意

      1.必须 子类 ,

      2.实例成员方法,

      3.方法名必须一样

      4.参数 一样 或  父类 擦除后 和子类相同;

      5.返回值 类型和父类相同 或 子类 可以是 父类 的子类型(引用)

      6.子类方法的访问修饰符 不能比 父类更严格(低)

      7.异常,子类 不能 比父类的异常范围更大。

    场合

      1.子类 和 父类中 的 方法的功能不同;

      2.子类 修改了 父类中的功能。

    父类 手机 {

      来电显示(){

          电话号码

      }

    }

    子类 手机{

      来电显示(){

          电话号码

          人名

          地址

          照片

        }

    }

    ------------------------------------------------------

    super

      表示父类的范围,可以调用 父类的成员(成员变量,方法)

      作用

        1.区分 子类 和 父类 同名的成员;

        2.调用父类构造器

          super();

          位置:子类构造器中;

                子类构造器的第一行代码处

    注意

      子类 构造器 中 没有显示 调用父类构造 或 本类构造 , 那么 系统 会 自动分配一个 super()调用父类的 无参构造。

    特殊

      父类中 没有无参构造器 ,只有带参构造器 ,

          解决办法: 1)在父类中定义一个无参构造器;2) 子类构造器 中 显示调用父类带参构造器。

    继承的传递:子类 可以继承 直接父类的 成员,也可以继承 间接父类的成员。

    -------------------------------------------------------------------------------------------------------------------------------------

    Object:所有类的基类

      finalize()  垃圾回收 之前调用

    强制垃圾回收:System.gc();

      toString(): 对象的字符串描述信息

      注意: 在使用print() 或 pintln()输出对象名时,会 自动调用toString();

      equals() : 比较是否 为同一对象,同一地址

    -----------------------------------------------

    final修饰符

      1.  : 不能被 子类 继承;

        (1)为了类的安全性 ,不允许子类修改。

        (2) 类之间的方法有复杂的调用关系。

        (3) 此类是最终版本的类,不想再扩展了。

      2.方法:不能被 子类 重写;

      不希望子类更改 ,所有子类 使用的是父类中的同一版本的方法。

      3.变量:值不能更改。常量

      值不能修改。

      常量的好处

        1.安全性。不允许随意更改值。

        2.可维护性。一个常量值更改了,所有应用的地方就都修改了。

        3.增强可读性。

    -------------------------------------------------------------

    什么情况会派生新类

    1.子类 增加属性.

    2.子类 增加了方法。

    ----------------------------------------------------------

    设计类 的继承关系注意

      1. 不要超过3层。

      2. 可以被子类继承的类:

        (1)写详细的文档说明。

        (2)尽量封装。private

                 对所有用户都开放 public

                 只对子类开放  protected

                 对所有用户都开放,又不想被 子类更改 final

          手机{

            private 容量;

            protected set(){}

            public get(){}//

          }

    -----------------------------------------------------

    继承的优点

    1.代码重用;

    2.便于维护。

    继承的缺点

    1.高耦合。

    2.破坏封装。

    ------------------------------------------------------

    组合

      整体 和 局部;

      体现方式:成员变量

    相关文章

      网友评论

          本文标题:javaSE_day08_继承

          本文链接:https://www.haomeiwen.com/subject/ialddftx.html