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

  从设计层面讲,抽象是类的抽象,是一种模版设计,接口是行为抽象,是一种行为规范。

  • 抽象类可以存在抽象方法和非抽象方法,接口只能存在抽象方法。
  • 类只可以继承一个抽象类,但是可以实现多个接口。
  • 抽象类声明的变量可以是非final的,接口声明的变量默认为final的。
  • 抽象类的成员函数可以为public、protected、private的,接口的成员函数只能是public。
  • 类可以不实现抽象类和接口的所有方法,则这个类必须声明成抽象的。
  • 抽象类可以在不提供接口方法的情况下实现接口。
  • 抽象类不能被实例化,但是如果它包含main方法的话是可以被调用的,接口是绝对抽象的,不能被实例化。

猜你喜欢

转载自www.cnblogs.com/Freak-Lew/p/9193046.html