ใน C++ เมธอดสมาชิกของคลาสเป็น non-virtual โดยค่าเริ่มต้น สามารถทำให้เป็น virtual ได้โดยระบุคีย์เวิร์ด
แต่ใน Java เมธอดเป็น virtual โดยค่าเริ่มต้น และสามารถทำให้เป็น non-virtual ได้ด้วยคีย์เวิร์ด 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
คลาส base_class มีฟังก์ชัน display_msg derived_class 繼承 base_class และมี display_msg ของตัวเอง ใน Main สร้างอินสแตนซ์ base_class เรียก display_msg แสดงผล