复用类
- 组合(has-a)
- 继承(is-a),面向对象程序设计的基石之一(封装,多态)
组合与继承的选择:是否需要向上转型
组合语法
初始化
- 定义对象时,能够在构造器被调用之前初始化
- 在类的构造器中
- 正要使用这些对象之前,惰性初始化
- 实例初始化
继承语法
为了继承,一般规则是数据成员指定为private,方法指定为public.
初始化基类
构建过程是从基类”向外”扩散的
带参数的构造器
调用一个带参数的基类构造器,必须使用关键字super显式调用,并配上参数
class Game{
Game(int i){}
}
class BoardGame extends Game{
BoardGame(int i){
super(i);
print("");
}
}
名称屏蔽
- 在导出类中重新定义方法名称不会屏蔽其在基类的任何版本,即重载
- 覆盖时,@Override注解可以防止你在不想重载时而意外地进行了重载
final关键字
final数据
一个永不改变的编译时常量
空白final
提供灵活性,但要确保使用前被初始化.
例如:在重载构造器中赋予不同的值
final参数
可读不可改,主要用来向匿名内部类传递数据
final方法
在继承中使方法行为保持不变,并且不会被覆盖
final和private关键字
类中所有的private方法隐式指定为final的,由于无法调用,也就无法覆盖.
导出类中相同名称的方法是新方法,不是覆盖
final类
不可被继承