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

Hành vi ảo mặc định khác nhau như thế nào trong C ++ và Java?

Trong C ++, các phương thức thành viên của lớp là không ảo theo mặc định. Điều này có nghĩa là, chúng có thể được tạo ảo bằng cách chỉ định nó.

Mặt khác, trong Java, các phương thức là ảo theo mặc định và có thể được tạo không ảo với sự trợ giúp của từ khóa 'final'.

Ví dụ

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

Đầu ra

The display_msg method of base class class

Một lớp có tên ‘base_class’ được tạo, có một hàm ‘display_msg’. Chức năng này chỉ hiển thị thông báo có liên quan. Một chức năng khác có tên là ‘origin_class’ được kế thừa từ ‘base_class’. Lớp này cũng có ‘display_msg’ hiển thị thông báo có liên quan. Một lớp khác có tên Main chứa chức năng chính, nơi một thể hiện của base_class được tạo. ‘Display_msg’ được gọi với phiên bản này và đầu ra được hiển thị trên màn hình.