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'가 호출되고 출력이 화면에 표시됩니다.