简述java接口和C++虚类的相同和不同之处

C++虚类相当于java中的抽象类,与接口的不同处是:

  1.一个子类只能继承一个抽象类(虚类),但能实现多个接口

  2.一个抽象类可以有构造方法,接口没有构造方法

  3.一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方法体),接口中的方法都是抽象方法,不能有方法体,只有方法声明

  4.一个抽象类可以是public、private、protected、default,接口只有public

  5.一个抽象类中的方法可以是public、private、protected、default,接口中的方法只能是public和default修饰,实际上都是public的abstract方法

 

相同之处是:

  都不能实例化。

 

 补充

  接口是一类特殊的抽象类,是更抽象的抽象类,你可以这样理解。抽象类是一个不完整的类,接口只定义了一些功能。

posted @ 2018-04-09 16:29  Starer  阅读(3718)  评论(0编辑  收藏  举报