抽象类
当我们描述某一类的某一行为特征,但他们又大不相同,这时就可以利用抽象类,只是声明,而不实现具体的方法,需要用abstract 关键字进行修饰。
抽象类的特征:
- 有抽象方面的类必须定义为抽象类,而抽象类可以不包含抽象方法;
- 用abstract修饰;
- 不可以实例化;
- 一般用于子类去继承父类的方法extends。
接口
接口算是抽象类的一种特殊形式,就是,要是类中的所有方法都是抽象方法就是接口。
接口的特征
- 定义接口时默认使用 public abstract 来修饰;
- 接口中的变量默使用“ public static final ”来修饰,即全集变量;
- 用 interface 关键字
- 子类通过实现(implements)的方式,来重写所有的抽象方法。
- 也不能实例化对象。
- 一个类可以实现多个接口,被实现的接口用逗号隔开
- 继承的同时还可以实现接口
类比
相同点:
1. 内部可以包含抽象方法
2. 都需要继承或者实现
3. 都不可以使用new关键字进行实例化
不同点
1. 继承--每一个类只能有一个父类;接口——每个类可以实现多个接口
2. 抽象类 可以拥有普通类有的一切内容 ;接口,静态 final 的属性,静态方法(不推荐使用),抽象方法