1 抽象类
(1)不能被实例化的类;
(2)抽象类不一定含有抽象方法;
(3)但是含有抽象方法的类一定要写成抽象类;
(4)抽象方法不能有方法体。
2 接口:更加抽象的“抽象类”,接口里的所有方法都没有方法体,体现了多态和高内聚低耦合的思想。注意事项
(1)接口不能被实例化;
(2)接口中所有的方法都不能有方法体;
(3)一个类可以实现多个接口;
(4)接口可以有成员变量,但是不能用protected和private修饰,并且:
- 接口中的成员变量,本质上都是static的,不管加不加static进行修饰,而且都是final的;
- java开发中,经常把常用的变量,放在接口中,作为全局变量使用,访问形式:接口名.变量名。
(5)接口不能继承别的类,但是可以继承别的接口。
实现接口和继承类的关系:
- 由于java是单继承机制,而实现接口可以看做是对继承类的一种扩充;
- 同时由于继承是层级式的(修改一个类会打破继承的平衡),而实现接口可以在不打破继承关系的前提下,对某个类功能进行扩展;
- 接口、继承是实现多态的两种方方式。
何为前期绑定和后期绑定:在编译是就能确定的类型是前期绑定,在运行时才能确定的类型是后期绑定。
3 final修饰符——不希望类、方法、变量不被继承、覆盖、修改时,可以修饰该类、方法或者变量,final修饰的变量必须赋初值。