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

C++ 대 Java의 기본 가상 동작

<시간/>

C++에서 메서드는 기본적으로 가상이 아닙니다. virtual 키워드를 사용하여 가상 기능으로 만들 수 있습니다.

예시 코드

#include <iostream>
using namespace std;
class B {
   public: void s() //non virtual by default. Use virtual before the function to print “In Derived” {
      cout<<" In Base \n";
   }
};

class D: public B {
   public: void s() {
      cout<<"In Derived \n";
   }
};

int main(void) {
   D d; // An object of class D
   B &b = d;
   b.s();
   return 0;
}

출력

In Base.

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

예시 코드

class B {
   public void s() {
      System.out.println("In Base"); // virtual by default
   }
}

class D extends B {
   public void s() {
      System.out.println(" In Derived");
   }
}

public class Main {
   public static void main(String[] args) {
      B b = new D();
      b.show();
   }
}

출력

In Base.