常见面试题
No | 区别 | 抽象类 | 接口 |
---|---|---|---|
1. | 定义 | abstract class 抽象类名称 | interface 接口名称 |
2. | 组成 | 构造,普通方法,静态方法,全局常量,成员 | 抽象方法,全局常量,普通方法,static方法 |
3. | 权限 | 可以使用各种权限定义 | 只可以使用public |
4. | 子类使用 | 子类通过extends关键词可以继承一个抽象类 | 子类使用implements 可以实现多个接口 |
5. | 2者关系 | 抽象类可以继承若干个接口 | 接口不允许继承抽象类,但是允许继承多个父接口 |
6. | 使用 | 1.抽象类或接口必须定义子类; 2.子类一定要覆写抽象类或接口中的全部抽象方法;3.通过子类的向上转型实现抽象类或接口实例化。 |
- 当抽象类和接口都可以使用都情况下,优先考虑接口,因为接口可以避免子类的单继承局限.
- 另外,从一个正常的设计角度来,我们需要先从接口开始设计.