Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

기본 가상 동작은 C++와 Java에서 어떻게 다릅니까?

<시간/>

C++에서 클래스 멤버 메서드는 기본적으로 가상이 아닙니다. 즉, 지정하여 가상으로 만들 수 있습니다.

반면에 Java에서 메소드는 기본적으로 가상이며 'final' 키워드를 사용하여 비가상으로 만들 수 있습니다.

예시

class base_class{
   public void display_msg(){
      System.out.println("The display_msg method of base class class");
   }
}
class derived_class extends base_class{
   public void display_msg(){
      System.out.println("The display_msg of derived class called");
   }
}
public class Main{
   public static void main(String[] args){
      base_class my_instance = new base_class();;
      my_instance.display_msg();
   }
}

출력

The display_msg method of base class class

'display_msg' 기능이 있는 'base_class'라는 클래스가 생성됩니다. 이 기능은 관련 메시지만 표시합니다. 'derived_class'라는 또 다른 함수는 'base_class'에서 상속됩니다. 이 클래스에는 관련 메시지를 표시하는 'display_msg'도 있습니다. Main이라는 다른 클래스에는 base_class의 인스턴스가 생성되는 기본 함수가 포함되어 있습니다. 이 인스턴스와 함께 'display_msg'가 호출되고 출력이 화면에 표시됩니다.