C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++とJavaの継承


C ++とJavaには、継承の概念があります。継承プロパティは、コードを再利用し、2つのオブジェクト間の関係を作成するために使用されます。ここでは、C++での継承とJavaでの継承の基本的な違いをいくつか見ていきます。

  • Javaでは、すべてのクラスがObjectクラスを拡張しています。したがって、クラスの単一レベルの継承ツリーが常に存在します。オブジェクトクラスはツリーのルートにあります。これが正しいか、単純なコードを使用していないかを確認しましょう。

//This is present in the different file named MyClass.java
public class MyClass {
   MyClass() {
      System.out.println("This is constructor of MyClass.");
   }
}
//This is present the different file named 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));
   }
}

出力

This is constructor of MyClass.
obj is an instance of Object: true
  • Javaでは、祖父母クラスのメンバーに直接アクセスできます。

  • 保護された可視性は、JavaではC++とは少し異なります。 Javaでは、基本クラスの保護されたメンバーは、そのクラスが基本クラスから派生していない場合でも、同じパッケージの別のクラスからアクセスできます。ここで、MyClassの保護されたメンバーにTestからアクセスできます。

//This is present in the different file named MyClass.java
public class MyClass {
   protected int x = 10;
   protected int y = 20;
}
//This is present the different file named 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では、継承にextendsキーワードを使用するようにJavaを使用します。 C ++では、パブリック、プロテクト、プライベートなどの継承の可視性を判断できますが、ここでは可視性を変更できません。したがって、一部のメンバーがパブリッククラスでパブリックまたは保護されている場合、それらは派生クラスでもパブリックまたは保護されます。

  • Javaでは、すべてのメソッドはデフォルトで仮想です。 C ++では、仮想キーワードを指定する必要があります。

  • C ++では、多重継承を使用できます。 Javaでは、多重継承を直接作成することはできません。あいまいさを減らすために、Javaは多重継承の効果を得るためのインターフェースをサポートしています。インターフェイスは純粋に抽象的な基本クラスであり、完全な関数はないため、あいまいさはありません。


  1. C++での多重継承

    多重継承は、クラスが複数の基本クラスから継承する場合に発生します。したがって、クラスは、多重継承を使用して複数の基本クラスから機能を継承できます。これは、C++などのオブジェクト指向プログラミング言語の重要な機能です。 多重継承を示す図を以下に示します- C++で多重継承を実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; class A {    public:    int a = 5;    A() {     &

  2. Javaでの継承の種類

    Javaは3種類の継承をサポートしています- 単一レベルの継承-クラスは単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承します。 マルチレベル継承-クラスは、プロパティを継承するクラスからプロパティを継承します 階層継承-複数のクラスが単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承し、クラスCはクラスAを継承します。