কম্পিউটার

কেন একটি কনস্ট্রাক্টর জাভাতে চূড়ান্ত হতে পারে না?


যখনই আপনি একটি পদ্ধতি চূড়ান্ত করবেন, আপনি ওভাররাইড করতে পারবেন না এটা অর্থাৎ আপনি সাবক্লাস থেকে সুপারক্লাসের চূড়ান্ত পদ্ধতিতে বাস্তবায়ন প্রদান করতে পারবেন না।

অর্থাৎ একটি পদ্ধতি চূড়ান্ত করার উদ্দেশ্য হল বাইরে থেকে (শিশু শ্রেণী) পদ্ধতির পরিবর্তন রোধ করা।

উত্তরাধিকারসূত্রে যখনই আপনি একটি শ্রেণী প্রসারিত করেন। শিশু শ্রেণীটি কনস্ট্রাক্টর ব্যতীত সুপারক্লাসের সমস্ত সদস্যকে উত্তরাধিকারী করে।

অন্য কথায়, জাভাতে কনস্ট্রাক্টর উত্তরাধিকারসূত্রে পাওয়া যায় না তাই আপনি ওভাররাইড করতে পারবেন না কনস্ট্রাক্টর।

সুতরাং, কনস্ট্রাক্টরের আগে চূড়ান্ত লেখার কোন মানে হয় না। অতএব, জাভা কনস্ট্রাক্টরের আগে চূড়ান্ত কীওয়ার্ড অনুমোদন করে না।

যদি আপনি চেষ্টা করেন, একটি কনস্ট্রাক্টরকে চূড়ান্ত করুন একটি কম্পাইল টাইম ত্রুটি তৈরি হবে "এখানে মডিফায়ার ফাইনাল অনুমোদিত নয়" বলে।

উদাহরণ

নিম্নলিখিত জাভা প্রোগ্রামে, স্টুডেন্ট ক্লাসের একটি কনস্ট্রাক্টর রয়েছে যা চূড়ান্ত।

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

  1. জাভাতে চূড়ান্ত প্যারামিটার কি?

  2. জাভাতে ফাইনাল ক্লাস

  3. জাভাতে চূড়ান্ত পরিবর্তনশীল

  4. জাভাতে চূড়ান্ত কীওয়ার্ড