java基础知识点(三)
本文从需求出发,讨论如何设计类
设计类方法
- 抽共性:将派生类共有属性和行为,抽象到超类中
- 如果派生类某个行为都一样,设计成普通方法;如果行为不一样,设计成抽象方法
- 如果派生类部分类某个行为共有,则把这个行为抽象到接口中(即接口对单一继承局限性的拓展)
抽象类(abstract)
- 抽象方法:没有方法体,表现为abstract修饰的一个函数声明。包含抽象方法的类必须为抽象类。
- 由abstract 关键字修饰
- 抽象类是不完整的,因此不能被实例化对象
- 抽象类需要被继承,派生类如果有实例化要求,需重写所有抽象方法(起了接口规范的作用)。
内部类:常用的匿名内部类,优点:代码编写方便。使用场景:监听程序、线程代码、时间驱动。
接口:
- 是一种数据类型,由interface定义
- 只能包含常量(static final )和抽象方法
- 不能被实例化
- 需要被实现类实现
- 接口权限默认public
- 实现类要实现接口里的所有抽象方法
- 一个类可以实现多个接口,用逗号分隔。同时有继承和实现时,先继承后实现。
多态:
- 行为多态:一个类型的引用在指向不同的对象时有不同的实现。(引用执行的方法体由对象本身决定)
- 对象多态:同一个对象,造型成不同类型时有不同功能。(引用能调用的方法名由造型的类型决定)
- 强制类型转换成功条件:1)引用指向的对象实际是该类型。2)引用的对象实现了该类的方法
- 一般在强转之前先通过instanceof 来判断对象类型