Computer >> Máy Tính >  >> Lập trình >> C ++

Hành vi ảo mặc định trong C ++ so với Java

Trong C ++, các phương thức là không ảo theo mặc định. Chúng có thể được tạo ra chức năng ảo bằng cách sử dụng một từ khóa ảo.

Mã mẫu

#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;
}

Đầu ra

In Base.

Trong Java, các phương thức là ảo theo mặc định. Chúng có thể trở thành chức năng không ảo bằng cách sử dụng từ khóa cuối cùng.

Mã mẫu

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();
   }
}

Đầu ra

In Base.