เมื่อใดก็ตามที่คุณสร้างเมธอดสุดท้าย คุณจะไม่สามารถลบล้าง มัน. กล่าวคือ คุณไม่สามารถดำเนินการกับวิธีสุดท้ายของ 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