在Java中,所有类都直接或间接地从Object类继承。因此,Java中始终只有一个类的继承树,而Object类是该树的根。 在Java中,祖父母类的成员不可直接访问。有关更多详细信息,请参见此G-Fact。 Java中受保护成员访问说明符的含义有所不同。在Java中,即使B不从A继承(它们都必须在同一个包中),也可以在同一包的其他“ B”类中访问“ A”类的受保护成员。 Java使用extends关键字进行继承。与C ++不同,Java不提供像public,protected或private这样的继承说明符。因此,我们无法更改Java中基类成员的保护级别,如果某些数据成员在基类中是公共的或受保护的,则它在派生类中仍是公共的或受保护的。与C ++一样,无法在派生类中访问基类的私有成员。 与C ++不同,在Java中,我们不必记住那些继承规则,它们是基类访问说明符和继承说明符的组合。 在Java中,默认情况下方法是虚拟的。在C ++中,我们显式使用virtual关键字。有关更多详细信息,请参见此G-Fact。 Java 对接口使用单独的关键字接口,对抽象类和抽象函数使用abstract关键字。 与C ++不同,Java不支持多重继承。一个类不能从多个类中继承。但是,一个类可以实现多个接口。 在C ++中,会自动调用父类的默认构造函数,但是如果要调用父类的参数化构造函数,则必须使用Initializer list。与C ++一样,父类的默认构造函数在Java中会自动调用,但是如果要调用参数化的构造函数,则必须使用super来调用父构造函数。