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

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

 

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

 

posted @ 2018-06-17 15:50  Freak_Lew  阅读(121)  评论(0编辑  收藏  举报