接口和抽象类是支持抽象类定义的两种机制。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。抽象类是可以有私有方法或私有变量的,通过把类或者类中的方法声明为abstract来表示一个类是抽象类,被声明为抽象的方法不能包含方法体。所以,使用接口可以间接地实现多重继承。接口强调特定功能的实现,而抽象类强调所属关系。接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对立面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。

Java接口和抽象类有什么区别