Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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("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에서 조부모 클래스의 구성원은 봇에 직접 액세스할 수 있습니다.

  • 보호된 가시성은 C++와 비교하여 Java에서 약간 다릅니다. 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++에서는 public, protected 및 private와 같은 상속의 가시성을 결정할 수 있지만 여기서는 가시성을 변경할 수 없습니다. 따라서 일부 멤버가 public이거나 기본 클래스에서 보호되는 경우 파생 클래스에서도 공개되거나 보호됩니다.

  • Java에서 모든 메소드는 기본적으로 가상입니다. C++에서는 virtual 키워드를 지정해야 합니다.

  • C++에서는 다중 상속을 사용할 수 있습니다. Java에서는 다중 상속을 직접 생성할 수 없습니다. 모호성을 줄이기 위해 Java는 다중 상속 효과를 얻을 수 있는 인터페이스를 지원합니다. 인터페이스는 완전한 기능이 없는 순수한 추상 기본 클래스이므로 모호함이 없습니다.