首页 > 代码库 > 抽象类和接口的异同点

抽象类和接口的异同点

相同点:
都是不断向上抽取而来的。

不同点:
1,抽象类需要被继承,而且只能单继承。
    接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
    接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,*是is a关系*,在定义该体系的基本共性内容
    接口的实现是 *like a 关系*,在定义体系额外功能

举一个简单的例子:

犬按功能分:有导盲犬,搜爆犬。

 1 abstract class 2 {
 3     abstract void 吼叫();
 4 }
 5 
 6 interface 导盲
 7 {
 8     abstract void 导盲();
 9 }
10 
11 
12 class 导盲犬 extendsimplements 导盲
13 {
14     public void 吼叫()
15     {
16     }
17     public void 导盲(){}
18 }

 

抽象类和接口的异同点