抽象类和接口的异同点

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


不同点
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 }
原文地址:https://www.cnblogs.com/kkkky/p/6389434.html