1、组合
将一个对象的引用置于另一对象的域中。
组合情况下,需要对组合对象进行初始化,否则编译器会自动初始化为null。
初始化的位置:1)在定义对象的地方2)在类的构造器中3)在使用对象的之前,惰性初始化4)使用实例化
2、继承
1)初始化基类
初始化:java 会自动在导出类的构造器中插入对基类构造器的调用。
构造过程是从基类向外扩散的。
如果调用带有参数的构造器,需要显示调用,使用super关键字。调用基类构造器必须是导出类构造器中要做的第一件事。
3、组合和继承
4、final关键字
final关键字可以修饰数据、方法和类。
1)final数据
一个永不改变的编译时常量;一个在运行时被初始化的值,而不希望被改变。
static 、final 编译时常量只针对于基本数据类型。
final 修饰对象,是指对象引用不可更改,但对象内容可以修改。
final 参数意味着你无法在方法中更改参数引用所指向的对象。
2)final方法
方法锁定,以防任何继承类修改它的含义。确保在继承中使方法行为保持不变,并且不会被覆盖。
private 方法 隐为final
3)final类
final 类不允许继承,final 类中的所有方法都隐式指定为final,无法覆盖。