1、关于前帮定和后帮定
在非OOP的编译器采用前帮定,意思系统在编译时会记录函数名称的调用,而连接器负责将这个调用解析成执行代码的绝对地址。
在OOP中不到运行的时候,程序没法确定代码的地址,所以想泛型发送一个消息的时候,会用到一些别的手段。OOP语言采用后帮顶,不到运行时,系统不确定到底该调用那段代码,只检查该方法是否存在,参数和返回值的类型是否正确,java采用了一些特殊的代码代替绝对调用。
2、关于“上传”
我们把派生类当作基础类使用的方法称为 --上传(UPCAST)。
本章的shape例子将多态及范型描述的很好,应该在多看几遍。
3、abstract 类:
你只想让基类表示由其派生类生出的接口,即你不想让人由它创建一个对象,而只想把对象上传给它,以期待使用这个类的接口。编译器会组织任何abstract类的对象的产生。
abstract 关键字申明:由这个类所派生出的所有类都有一个这个方法,但是他的实现不在这里。
abstract 方法只能存在于abstract 类里,如果有个类继承了abstract 类,要么他实现了这个抽象方法,要么他继续是抽象类。
4、interface:
interface 关键字更是对 abstract 类的概念的深化,它不允许你实现任何方法,这是个很不错的手段,因为他彻底将接口和实现分离。
接口可以多重继承!
5、关于容器:
由于 java 语言的特性:对象是放在堆中的,而在栈中存储的是该对象的引用。程序员不用自己去管理垃圾的回收,垃圾回收器会自动的检查对象是否该不该回收。而为了更好的管理这些对象,JAVA语言引入了容器类(COLLECTION)。通过 Iterator 可以遍历容器中的对象。
6、单根继承体系:
所有的对象都继承自Object ,为垃圾回收提供了很大的方便。