0

正如标题所述:当我在 CPP 中“派生”一个类时,这与在 Java 中“扩展”一个类几乎相同,是吗?

4

2 回答 2

2

是的,它们的意思是一样的。尽管“派生”在 C++ 中不像extends在 Java 中那样是关键字,尽管 C++ 标准使用“派生”一词来表示子类的概念。C++ 中的继承使用:符号以及可选的访问限定符(如publicor )来表示private

C++ 继承也比 Java 继承稍微复杂一些,因为它支持多重继承,因此虚拟继承也是一种选择。

于 2012-08-22T23:49:44.713 回答
2

是的。由于 Java 没有多重继承,因此该语言可能会更加冗长。Javaclass D extends Bclass D : public B在 C++ 中的,但在 C++ 中,您也可以拥有像struct D : B1, private B2, protected B3.

同样,在 Javasuper中指的是(唯一的)基础子对象,可以理解的是,在 C++ 中没有可比的概念(您必须按名称指定基础)。

(请注意,implementsJava 中也有专用接口类。由于它们没有成员,只有抽象函数,因此无需从派生(即“实现”)类中引用这些接口基类。)

于 2012-08-22T23:52:26.007 回答