第七章 复用类
1、组合
将对象引用置于新类中。
2、继承
1)使用extends
2 )继承一般规则:将所有的数据成员都指定为private,所有的方法置为public。
3、代理
这是继承和组合的中庸之道。
4、结合使用组合和代理
5、向上转型
由导出类转型成基类,在继承图上是向上转型的。
6、final关键字
1)final 数据
一个永不改变的编译时常量
一个运行时被初始化的值,并且不希望它被改变。
一个static又是final的域占据这一段不能改变的存储空间。
对于对象引用,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法把它改为指向另一个对象,但对象本身就可以改变的。
final static基本类型全用大写字母命名,字与字之间用横线隔开。
允许空白final
java允许在参数列表中以声明的方式将参数指向final,意味着无法在方法中更改引用所指向的对象。
2)final方法
类中所有private方法都隐性的指向final。
如果方法是private的,他就不是类接口的一部分,。它仅是隐藏在类中的程序代码,只不过拥有相同的名字。
3)final 类
将类整体定义为final时,就表明了你不打算继承该类,并且也不要求别人那么做。
第八章 多态
在面向对象的设计语言中,多态是继数据抽象和继承之后的第三个基本特征。
动态绑定、后期绑定、运行时绑定。
1、方法调用绑定
将一个方法调用同一个方法主体关联起来被称作绑定。若在程序执行之前进行绑定,叫做前期绑定。
解决前期绑定的办法就是后期绑定,含义是在运行时根据对象的类型进行绑定。后期绑定也称为动态绑定或运行时绑定。
Java除了static方法和final方法(private方法也属于final方法),其他方法都是动态绑定。
2、覆盖私有方法
私有方法是不能被覆盖的。只是子类中产生了一个全新的方法。
3、构造器和多态
构造器并不具备多态性,因为它是隐性static的。
复杂对象调用构造器的方法。
①调用基类构造器。这个步骤会不断的反复递归下去,首先是构造这种层次结构的根,然后是下一层导出类,等等,直到最底层的导出类。
②按声明顺序调用成员的初始化方法
③调用导出类构造器的主体、
第九章 接口
1、抽象类和抽象方法
包含抽象方法的类叫做抽象类,如果一个类包含一个或者多个抽象方法,该类就必须限定为抽象的。
使用abstract
2、接口
interface 完全抽象的类
默认为public
3、接口的域
放入借口的任何域都是自动是static和final的。
在接口中定义的域是不能“空final",但是可以被非常量表达式初始化。