多态和抽象和接口
1. 要实现多态的步骤:
A. 编写父类,编写子类
B. 在子类中重写父类方法
C. 用父类的数据类型去引用子类的对象
2. 多态分为静态多态和动态多态
A. 静态多态(编译时多态):指的是程序在编译时,系统就能决定调用那个方法,实现方式 — 方法重载
B. 动态多态(运行时多态):指在运行中系统才能动态确定方法所指的动象, 实现方式 — 重写父类中的同名成员方法 / 动态绑定
3. instanceof关键字:用于判断运行时对象的真正类型
引用 instanceof 类名
注意:如果引用是指定的类类型,那么instanceof运算符返回true,否则返回false.
4. 绑定分为静态绑定和动态绑定
A. 静态绑定(前期绑定):指在程序执行前方法已经给绑定,在Java中的方法只有final, static, private, 构造器是前期绑定。
B. 动态绑定(后期绑定):Java中的所有普通方法,都采用动态绑定技术,默认为动态绑定。
5. 抽象类
A. 使用关键字abstract可以声明一个抽象类,abstract放在class前的任何地方
B. 使用abstract修饰符修饰,表示该类不能创建实例,必须有子类来实现
C. 抽象类与final不能同时出现在一个类中
6. 抽象方法
A. 抽象方法没有方法主体,以分号结尾
B. 抽象方法必须出现在抽象类中
C. 抽象方法必须在子类中实现,除非子类也是抽象类
D. 抽象类与final不能同时出现在一个方法中
7. 接口与类的相同点
A. 接口可以有任意数量的方法
B. 接口保存为以“.java“为后缀的文件,接口名与文件匹配
C. 接口编译后是后缀为“.class“的字节码文件
8. 接口与类的不同点
A. 接口不能被实例化
B. 接口不包含任何构造器
C. 接口中的所有方法都是抽象的,没有方法主体
D. 接口中不能包含实例成员变量
E. 接口不能被一个类继承,只能被一个类实现
9. 接口的特点
A. 接口能够继承多个接口,使用关键字extends
B. 接口中的所有方法都是抽象的,不能实现
C. 使用关键字implements实现接口
D. 实现接口的类必须实现接口的所有方法
E. 一个类可以实现多个接口
F. 接口里可以声明属性,默认都是publc static final
10. 接口的优点
A. 将设计和实现分离,对外(调用者)隐藏了实现
B. 面向接口编程是OOP的核心
11. 接口声明
public interface 接口名{
// 抽象方法
}
12. 接口实现
Public class 类名 extends 父类名 implements 接口名{
}
13. 类实现接口的两个选择:
A. 类要实现接口中定义的所有方法
B. 声明类为抽象的
14. 没有方法的接口被称为标记接口
15. 接口与抽象的区别:
A. 抽象类是接口的部分实现,既能定义抽象方法也能定义普通方法和属性
B. 接口中不能定义静态方法,而抽象类可以
C. 接口中只能定义静态常量属性,不能定义普通属性
D. 接口不包含构造器,而抽象类中可以包含
E. 接口中不包含初始化块,抽象类可以
F. 可以通过实现多个接口来弥补Java单继承的不足