复用类

复用类

组合(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类

不可被继承