เมื่อใดก็ตามที่คุณสร้างเมธอดสุดท้าย คุณจะไม่สามารถลบล้าง มัน. กล่าวคือ คุณไม่สามารถดำเนินการกับวิธีสุดท้ายของ superclass จากคลาสย่อยได้
กล่าวคือ จุดประสงค์ของการทำ method ขั้นสุดท้ายคือเพื่อป้องกันการดัดแปลง method จากภายนอก (child class)
สืบทอดเมื่อใดก็ตามที่คุณขยายคลาส คลาสลูกสืบทอดสมาชิกทั้งหมดของ superclass ยกเว้น constructor
กล่าวอีกนัยหนึ่ง คอนสตรัคเตอร์ไม่สามารถสืบทอดใน Java ได้ ดังนั้นคุณจึงไม่สามารถ แทนที่ ตัวสร้าง
ดังนั้นการเขียนขั้นสุดท้ายก่อนที่ตัวสร้างจะไม่มีเหตุผล ดังนั้น java ไม่อนุญาตให้ใช้คีย์เวิร์ดสุดท้ายก่อนตัวสร้าง
หากคุณลอง สร้าง Constructor ขั้นสุดท้าย ข้อผิดพลาดของเวลาคอมไพล์จะถูกสร้างขึ้นโดยระบุว่า “ไม่อนุญาตให้ใช้ตัวดัดแปลงขั้นสุดท้ายที่นี่”
ตัวอย่าง
ในโปรแกรม Java ต่อไปนี้ คลาส Student มี Constructor ซึ่งเป็นที่สิ้นสุด
public class Student {
public final String name;
public final int age;
public final Student() {
this.name = "Raju";
this.age = 20;
}
public void display() {
System.out.println("Name of the Student: "+this.name );
System.out.println("Age of the Student: "+this.age );
}
public static void main(String args[]) {
new Student().display();
}
} ข้อผิดพลาดในการคอมไพล์เวลา
ในการคอมไพล์ โปรแกรมด้านบนสร้างข้อผิดพลาดดังต่อไปนี้
Student.java:6: error: modifier final not allowed here
public final Student(){
^
1 error