C ++与Java的继承

在C ++和Java中,有继承的概念。继承属性用于重用代码,并在两个对象之间建立关系。在这里,我们将看到C ++继承和Java继承之间的一些基本区别。

  • 在Java中,所有类都在扩展Object类。因此,总会有一个类的单级继承树。对象类位于树的根目录。让我们使用简单的代码来检查这是否正确。

示例

//This is present in the different file named MyClass.java

public class MyClass {

   MyClass() {

      System.out.println("这是MyClass的构造函数。");

   }

}

//这是另一个名为Test.Java的文件

public class Test {

   public static void main(String[] args) {

      MyClass obj = new MyClass();

      System.out.println("obj is an instance of Object: " + (obj instanceof Object));

   }

}

输出结果

这是MyClass的构造函数。

obj is an instance of Object: true

  • 在Java中,可以直接访问祖父母类的成员。

  • 与C ++相比,Java中受保护的可见性几乎没有什么不同。在Java中,即使不是从基类派生的,也可以从同一包的另一个类访问基类的受保护成员。在这里,可以从Test访问MyClass的受保护成员。

示例

//This is present in the different file named MyClass.java

public class MyClass {

   protected int x = 10;

   protected int y = 20;

}

//这是另一个名为Test.Java的文件

public class Test {

   public static void main(String[] args) {

      MyClass obj = new MyClass();

      System.out.println("x is: " + obj.x + " y is: " + obj.y);

   }

}

输出结果

x is: 10 y is: 20
  • 在Java中,我们使用Java的extends关键字进行继承。在C ++中,我们可以确定继承的可见性,例如public,protected和private,但是在这里我们不能更改可见性。因此,如果某个成员是公共的或在基类中受保护,则它们也将是公共的或在派生类中受保护。

  • 在Java中,默认情况下所有方法都是虚拟的。在C ++中,我们必须指定virtual关键字。

  • 在C ++中,我们可以使用多重继承。在Java中,我们不能直接创建多重继承。为了减少歧义,java支持接口以获得多重继承的效果。接口是纯粹的抽象基类,其中没有完整的功能,因此没有歧义。

以上是 C ++与Java的继承 的全部内容, 来源链接: utcz.com/z/316803.html

回到顶部