虚函数 纯虚函数 抽象方法 接口

虚函数

虚函数实际上是C++中的讲法,就是说将一个函数实现声明为虚函数,这样就为子类提供了一个默认的实现,子类能够选择进行从新实现,或者不进行实现。这样对应到java里,其实就是java里的普通函数。虚函数是能够由子类进行无限覆盖的函数,另外本身也能够进行实现,而java的普通成员函数就能够作到,C++的普通函数就不行,不然就报重复定义error了,必须得加上virsual关键字声明。java

 

纯虚函数

也是C++的讲法,与虚函数的区别就是声明的地方不能有实现,彻底交给子类,至关于定义保留了一个接口。
C++中纯虚函数形式为:virtual void print() = 0;
对应到java中,就是抽象方法的概念,也就是abstract声明的函数。
JAVA中抽象方法定义形式:abstract void print();函数

 

抽象类

C++与JAVA中都有这个概念,在C++中,只要一个类中包含了一个纯虚函数,那么这个类就是一个抽象类;而在JAVA中,若是一个类中包含有一个抽象方法,因为JAVA有规定,这种状况下,这个类必需要用abstract来修饰,也就是一个抽象类了。
C++与JAVA中的抽象类有个共同点,就是抽象类不能直接拿来实例化,由于其中有抽象的函数,只能经过实现了这些函数的子类实例化。spa

 

接口

C++中没有独立的接口的概念,其实就是成员函数所有为纯虚函数的类,子类必须对他们进行所有实现。
JAVA中有独立的接口概念,就是interface修饰的类,跟C++中的纯虚基类换汤不换药,代码看起来样式不同而已,另外,java中的接口在声明的时候必须都定义为public的。接口

相关文章
相关标签/搜索