0%

Java 面向对象(七)—— 复用类

第七章 复用类

1、复用的方法

  • 在新类中产生现有类的对象

  • 继承

2、组合语法

  • 将对象引用置于新类

  • 初始化引用的位置

    • 定义处
    • 类构造器中
    • 惰性初始化(Delay Initialization)于使用对象前

3、继承

  • 声明新类与旧类类似

    • 书写紧跟基类名称关键字 extends
  • super 为超类,类从超类继承

  • 使用 += 可连接多个 String 对象

  • 构建过程(初始化过程同)是向外 “扩散” 的

    • 若类带有参数,则需要用 super 显式编写调用

4、代理:继承与组合的中间体

  • 异同:组合将成员对象置于要构造类中,但在新类中暴露了成员对象的所有方法;相较之,代理使用接口,这样与继承得到的接口相同而又只提供成员对象的某个子集,从而得到更多的控制力

  • java 不直接支持代理,可使用部分支持 ide 自动生成

5、结合使用组合和继承

  • finally () 子句确保正确清理,采用自己编写的顺序清理

  • dispose ():清理方法

  • 无名称屏蔽:重载方法不会屏蔽基类方法(区别 C++)

    • 需要覆写:Override (),不是关键字但按关键字处理

对比

  • 组合显式允许在新类中放置子类,但继承为隐式创建

  • 组合适用于在新类中使用现有类的功能而非接口,继承反之

  • 组合允许直接访问新类中的组合成分(public),继承相对更为安全且易于理解端口

  • is-a 关系 - 继承,has-a 关系 - 组合

6、protected 关键字

  • 提供包内和继承于此类的导出类的访问权限,对类用户私密

7、final 关键字

  • 对数据使用:编译时常量 或 运行时被初始化的值

  • 类常量 static final