抽象类和接口的异同点

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


 

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


 

举一个简单的例子:

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

而导盲犬是一只犬,且具有导盲功能。所以有:class 导盲犬 extends 犬 implements 导盲

 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 }

 

posted @ 2017-02-11 17:17  Kkky  阅读(241)  评论(0)    收藏  举报