复用类
组合——在新类中产生现有类的对象
继承——在现有类中添加新代码
组合语法
- 每一个对象都有一个toString()方法,该方法会在需要String的时候自动被调用
- 构造器创建默认对象的时间是正要使用这些对象之前(惰性初始化)
继承语法
- 可以为每个类设置一个main方法用于测试
- Java会自动在导出类中插入对基类构造器的调用
- 如果没有默认基类构造器或者想调用一个带参数的构造器,用super显式的编写调用基类构造器的语句
代理
- Java没有直接支持
- 将一个成员对象置于所要构造的类中,同时在新类中暴露该对象成员的所有方法
结合使用组合和继承
- @Override注解可以防止在不想重载时意外重载
在组合与继承之间选择
- 组合技术通常用于想在新类中使用现有类的功能而非他的接口,在新类中嵌入一个现有类的private对象
- 继承使用某个现有类,并开发一个他的特殊版本
protected关键字
向上转型
- 新类是现有类的一种类型
- 应慎用继承,而不是尽可能使用
- 如果需要向上转型,继承是必须的
final关键字
- 无法改变的,恒定不变的
- 与形式被初始化的值,而不能再改变
- 在编译时执行计算,减轻运行时负担
- final使引用恒定不变,不能指向另外的对象
- 空fanal:未规定初始值的域
- 参数列表中可以用final
- 类中的所有private方法都隐式的指定为final的
- 如果覆盖一个private方法,编译器不会报错,但是没有效果
- 类被定义为final是,表明不可继承
- final类中的所有方法都死final的
初始化及类的加载
- 类的代码在初次使用时才被加载
- 类在其任何static成员被访问时加载