কম্পিউটার

কেন একটি ইন্টারফেসের একটি কনস্ট্রাক্টর নেই যেখানে একটি বিমূর্ত শ্রেণীর জাভাতে একটি কনস্ট্রাক্টর আছে?


একটি কনস্ট্রাক্টর একটি বস্তুর সাপেক্ষে একটি নির্দিষ্ট শ্রেণীর নন-স্ট্যাটিক সদস্যদের আরম্ভ করা।

একটি ইন্টারফেসে কনস্ট্রাক্টর

  • একটি ইন্টারফেস জাভাতে একটি কনস্ট্রাক্টর নেই কারণ ইন্টারফেসের সমস্ত ডেটা সদস্য পাবলিক স্ট্যাটিক ফাইনাল ডিফল্টরূপে, তারা ধ্রুবক (ঘোষণার সময় মান নির্ধারণ করুন)।
  • কনস্ট্রাক্টরের মাধ্যমে শুরু করার জন্য একটি ইন্টারফেসে কোনো ডেটা সদস্য নেই।
  • একটি পদ্ধতি কল করার জন্য, আমাদের একটি বস্তুর প্রয়োজন, যেহেতু ইন্টারফেসের পদ্ধতিগুলির একটি বডি নেই তাই একটি ইন্টারফেসে পদ্ধতিগুলিকে কল করার কোন প্রয়োজন নেই৷
  • যেহেতু আমরা ইন্টারফেসে মেথডগুলোকে কল করতে পারি না, তাই ইন্টারফেসের জন্য কোনো অবজেক্ট তৈরি করার প্রয়োজন নেই এবং এতে কনস্ট্রাক্টর থাকার কোনো প্রয়োজন নেই।

উদাহরণ 1

ইন্টারফেস সংযোজন { int add(int i, int j);} পাবলিক ক্লাস টেস্ট প্রয়োগ যোগ করে { পাবলিক int add(int i, int j) { int k =i+j; ফেরত k; } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { টেস্ট টি =নতুন টেস্ট(); System.out.println("k মান হল:" + t.add(10,20)); }}

আউটপুট

k মান হল:30

একটি ক্লাসে কনস্ট্রাক্টর

  • নির্মাণকারীর উদ্দেশ্য একটি ক্লাসে ক্ষেত্রগুলি শুরু করতে ব্যবহৃত হয় কিন্তু বস্তু তৈরি করতে নয়৷
  • যখন আমরা একটি বিমূর্ত সুপারক্লাসের একটি নতুন উদাহরণ তৈরি করার চেষ্টা করি, তখন কম্পাইলার একটি ত্রুটি দেবে৷
  • তবে, আমরা একটি বিমূর্ত শ্রেণীর উত্তরাধিকারী হতে পারি এবং এর ভেরিয়েবল সেট করে এর কনস্ট্রাক্টর ব্যবহার করতে পারি।

উদাহরণ 2

বিমূর্ত শ্রেণীর কর্মচারী { সর্বজনীন স্ট্রিং empName; বিমূর্ত ডবল ক্যালস্যালারী(); কর্মচারী(স্ট্রিং নাম) { this.empName =name; // বিমূর্ত ক্লাসের কনস্ট্রাক্টর }} ক্লাস ম্যানেজার কর্মচারী { ম্যানেজার (স্ট্রিং নাম) { সুপার (নাম) প্রসারিত করে // সাবক্লাসের কনস্ট্রাক্টরে নাম সেট করা } ডবল ক্যালসালারি() { রিটার্ন 50000; }}পাবলিক ক্লাস টেস্ট { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { কর্মচারী ই =নতুন ম্যানেজার("আদিথ্যা"); System.out.println("ম্যানেজারের নাম হল:" + e.empName); System.out.println("বেতন হল:" + e.calcSalary()); }}

আউটপুট

ব্যবস্থাপকের নাম হল:AdithyaSalary is:50000.0

  1. কনস্ট্রাক্টরের নাম জাভাতে ক্লাসের নামের মতো কেন?

  2. জাভাতে ইন্টারফেস

  3. জাভাতে বিমূর্ত ক্লাস

  4. কেন কনস্ট্রাক্টর জাভাতে চূড়ান্ত হতে পারে না