Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เหตุใดคอนสตรัคเตอร์จึงไม่สามารถสิ้นสุดใน Java ได้


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