7.1组合语法
可以在一个对象中引用另一个对象
7.2继承语法
是所有oop语言不可缺少的,当创建一个类的时候除非明确的指出要继承哪个类,否则就是在隐式地从Java标准根类object进行继承
比组合语法平实,利用extends实现,继承的类会自动获得被继承类的所有域和方法
在对继承来的方法中如果想要调用父类的方法来完成某些功能则可以使用super.父类方法名()
在子类的构造方法中也可以使用super关键字调用父类的构造函数
7.3代理
我的理解就是 一个类包含另一个类 然后在包含类中写被包含类的方法在这些方法中通过被包含类调用想用的方法
7.4向上转型
将子类转换成父类 是从一个较专用类型向较通用的类型转换,所以总是很安全的,(向下转型以后研究)
7.5final
通常指 这是无法改变的
7.5.1 final数据
被final修饰的基本类型数据 表示基本类型数据是恒定不变的 被final修饰的数据必须赋初值且不能再被改变
如果final修饰的是对象时 final A test = new A( ) 表示对于对象引用test时不变的 既他不能指向另一个对象,但对象本身是可以修改的,适用于数组
一个既被static又被final修饰的域只占据一段不能改变的存储空间 一般使用大写表示
空白final 指没有在定义处赋值 这种情况必须在构造方法中赋值
final int a=1;
final int b;
public test04(){
b=1;
}
7.5.2 final方法
是为了将方法锁定,以防任何继承类修改它的含义 其实private修饰的方法隐式的指定为final
7.5.3 final类
将一个类定义为final就表明你不打算让该类继承,
7.9初始化及类的加载
类的代码在初次使用的时候在会被加载,通常是指加载发生与创建类的第一个对象之时,但当访问static域或static方法时,也会被加载
初次使用也是static初始化发生之处,所有static对象和static代码块都会在加载时依程序的顺序(定义类书写的顺序)而依次初始化,定义为static的东西只会被初始化一次