Java接口、Java抽象类、C++抽象类的区别

出于当时三栽多少类且是以创建类层次结构的顶层构架,且用法有些许相似之处,这里大概区分一下:

 

  接口:

    接口用interface关键字定义,

    名字一般下-able形式的形容词。

    接口通常定义抽象方法与常量,不可知定义实例方法。

    接口和抽象类一样,不可知经过new实例化。但是好就此来声称变量。

    接口中每个方法的默认修饰符是 public  abstract ,这象征在以贯彻该方式时,必须将促成的欠措施定义也public。

    接口中定义的持有的变量默认访问权限修饰符为
public final static
.所以在接口中定义变量时应该使常量的命名规则–全部大写。

  Java抽象类:

    使用abstract关键字修饰。

    不可知运用new关键字实例化

    抽象类可以起要尚未抽象方法。但是生抽象方法的近乎必须定义为抽象类。在空洞类吃得定义在无抽象类中该的数据元素,比如
变量, 实例方法等

  C++ 抽象类:

    通过当类似中声明一个或者基本上只virtual函数为纯virtual函数,可以假设一个化为抽象类。一个纯virtual函数(pure
virtual  function)的宣示如下:

      virtual  void draw() = 0

    每个派生的具体类必须重写所有基类的純虚函数。virtual
函数和非 virtual函数的分:

    virtual函数有函数的有血有肉落实,并且提供派生类是否重写这些函数的挑选权;相反,纯virtual函数并无提供函数的兑现,需要派生类更写这些函数。