继承
-
含义:即继承已存在的类复制(继承)这些类的方法和域
-
关键词extends表示继承—表明正在构造的新类派生出一个已存在的类
- 已存在的类 超类、基类或父类。
- 新类称为子类、派生类或孩子类 。
-
抽象类不能被实例化
-
Object 所有类的超类
- equals --用于检测一个对象是否属于另一个对象
- instanceof–
- toString–返回表示对象值的字符串
为了避免发生类型错误,常使用@override覆盖父类的方法
- 对象装箱器Integer、Long、Float、Double、Short、Byte、Void和Boolean(前6个类派于公共的超类Number)
- 实际上,这个声明定义的类型是一个类,它刚好有4个实例,在此尽量不要构造新对象。在比较两个枚举类型的值时,永远不需要调用equals,而是直接使用“==”就可以了
反射
能够分析类能力的程序称为反射
捕获异常
try {
statements that might throw exceptions
}catch(Exception e){
handler action
}
继承设计技巧
- 将公共操作和域放在超类。
- 不要使用受保护的域。
- 使用继承实现“is-a”关系、
- 除非所有的继承都有意义,否则不要使用继承。
- 在覆盖方法时,不要改变预期的行为。
- 使用多态,而非类型信息。
接口与内部类
- 接口 : 主要用来描述具有什么功能,并不给出每个功能的具体实现。
- 内部类:定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域。主要用于设计具有相同协作关系的类集合。
实现接口的关键词implements
接口的特性
- 接口不是类,不能使用new运算符实例化一个接口。但可以声明接口变量 Compable x;
- 可以使用instanceof检查某个接口是否属于某个对象anObject instanceof Compable
- 接口中不能包含实例域或静态方法,但却可以包含常量。
- 每个类只能拥有一个超类,但每个类能实现多个接口。
内部类
- 只有内部类能声明为static
- 声明在接口中的内部类自动成为static和public类。