第7章 复用类

      ·复用代码

           ·复制代码,并加以改变

            ·代码重用机制~组合(功能)、继承(功能 & 形式)

      7.1 组合语法

           ·组合:将对象引用<置于>新类中即可

                 ·(对象类型)数据域初始化位置:

                       1.定义的地方——构造器被调用前初始化

                       2.构造器中

                       3.惰性初始化

                       4.使用实例初始化(实例代码块)

      7.2 继承语法

           ·创建一个类时,总是在继承:直接或间接地继承自Object

                 1.显式继承:程序员用extends指出

                 2.隐式继承:继承Object

           ·Java的标准根类:Object

           ·extends:自动得到基类所有的域和方法(含静态域和静态方法)        

      7.3 代理

           ·代理:

                 ·介于继承和组合之间

                 ·将成员对象<置于>所要构造的类中(就像组合),但与此同时,在新类中暴露了该成员对象的       所有方法(就像继承)

                 ·使用代理可以拥有更多的控制力,因为可选择暴露成员对象的方法子集

      7.4 结合使用组合和继承

           ·确保正确清理

     

      7.5 在组合与继承之间选择

           ·组合技术:适用于想在新类中使用现有类的功能而非它的接口的情形

      7.6 protected关键字

      7.7 向上转型

           ·向上转型过程中,类接口中唯一可能发生的事情是丢失方法

           ·用组合还是继承:问自己是否需要从新类向基类进行向上转型

     

      7.8 final关键字

           ·final数据:

                 ·static数据,只存一份,可变

                 ·static final数据(编译期常量,大写表示),只存一份,且基本类型不可变、引用类型对象引用不可变(取决于是否为不可变类)

                 ·final基本类型数据:数值恒定不变

                 ·final引用类型数据:对象引用恒定不变(不能让它指向另外一个对象),但是对象未必不可改变(取决于是否为不可变类)

                 ·空白final

                 ·匿名内部类中使用final参数

                 ·类中所有的private方法都隐式地指定为final的

           ·final方法:禁止覆盖

           ·final类:禁止继承

     

      7.9 初始化及类的加载

           ·类的代码在初次使用时才加载

                 ·加载情形:

                      ·创建第一个对象:构造器调用(隐式的static方法)

                      ·静态成员调用:静态域或静态方法的访问

原文地址:https://www.cnblogs.com/InformationGod/p/8514586.html