第七章 复用类
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