C++ | Java |
虚函数 | 普通函数(普通方法) |
纯虚函数 | 抽象函数(抽象方法) |
抽象类 | 抽象类 |
抽象类 | 接口 |
这是网上有的人的总结,比较正确。表中每一行之间表示对等关系,我就这四条关系逐一解释一下,仅供参考。
(1)C++虚函数 <==> Java普通函数
C++中的虚函数有函数体,可以直接使用,也可以被其派生类覆盖(重写)后使用,这一点在Java中普通函数就能实现。
(2)C++纯虚函数 <==> Java抽象函数
C++中的纯虚函数和Java中的抽象函数都是只声明而没定义的函数,都不能直接使用,只有在它们的子类中定义了后才能使用。
(3)C++抽象类 <==> Java抽象类
C++抽象类是其中定义了纯虚函数的类,它和Java抽象类一样都是用于继承而不能直接使用。
(4)C++抽象类 <==> Java接口
Java中的接口相当于一个更“纯”的C++抽象类。