接口和抽象类的区别是什么

接口是一种约定,实现接口的类要遵循这个约定;抽象类本质是一个类,使用抽象类的代价要比接口大。

接口与抽象类的对比如下:

  1.‘抽象类中可以包含属性、常量、方法(抽象方法和有具体实现的方法)

   接口只能包含常量和方法声明

  2.抽象类中的方法和成员变量可以定义可见性(比如public、private等);而接口中的方法只能为public(缺省为public)。

  3.一个子类只能继承一个父类(具体类或者抽象类),而一个接口可以继承一个或多个接口,一个类也可以实现多个接口。

  4.子类中实现父类中的抽象方法时,可见性可以大于等于父类中的;而接口实现类中的接口 方法的可见性只能与接口中相同(public)。

原文地址:https://www.cnblogs.com/blzm742624643/p/12229368.html