【抽象类与接口】

关于抽象类与接口的区别:

从特征上来说:

1.接口内部都是抽象方法,另外接口内方法默认为public abstract ,而抽象类内除了抽象方法也可以有普通方法; 

2.接口是接口,它不是类,而抽象类除了无法被实例化以外和普通类没有区别(由于无法被实例化所以需要子类继承才能被使用);

3.一个类只能继承一个抽象类,但是一个类可以实现多个接口

4.抽象类中可以有成员变量,接口中没有成员变量

从功能上来说:

1.如果你拥有一些方法但不确定并且想让它们中的一些有默认实现,使用抽象类。

2.如果你想实现多重继承,可以使用接口,因为Java不支持多继承(一个父亲可以有很多儿子,但是一个儿子不能有很多爸爸(理论上hh)),子类不能够继承多个类,但可以实现多个接口。

原文地址:https://www.cnblogs.com/dabuliu/p/14456487.html