কম্পিউটার

জাভাতে ইন্টারফেস এবং ক্লাসের মধ্যে পার্থক্য


শ্রেণি

একটি শ্রেণী একটি ব্লুপ্রিন্ট যা থেকে পৃথক বস্তু তৈরি করা হয়। একটি শ্রেণীতে নিম্নলিখিত পরিবর্তনশীল প্রকারের যেকোনো একটি থাকতে পারে।

  • স্থানীয় ভেরিয়েবল − পদ্ধতি, কনস্ট্রাক্টর বা ব্লকের ভিতরে সংজ্ঞায়িত ভেরিয়েবলকে স্থানীয় চলক বলা হয়। ভেরিয়েবলটিকে পদ্ধতির মধ্যে ঘোষণা করা হবে এবং শুরু করা হবে এবং পদ্ধতিটি সম্পূর্ণ হয়ে গেলে ভেরিয়েবলটি ধ্বংস হয়ে যাবে।

  • ইন্সট্যান্স ভেরিয়েবল − ইনস্ট্যান্স ভেরিয়েবল হল একটি ক্লাসের মধ্যে ভেরিয়েবল কিন্তু যেকোনো পদ্ধতির বাইরে। এই ভেরিয়েবলগুলি শুরু করা হয় যখন ক্লাস ইনস্ট্যান্ট করা হয়। ইনস্ট্যান্স ভেরিয়েবল যেকোন পদ্ধতি, কনস্ট্রাক্টর বা সেই নির্দিষ্ট শ্রেণীর ব্লকের ভিতর থেকে অ্যাক্সেস করা যেতে পারে।

  • ক্লাস ভেরিয়েবল − ক্লাস ভেরিয়েবল হল একটি ক্লাসের মধ্যে ঘোষিত ভেরিয়েবল, যেকোনো পদ্ধতির বাইরে, স্ট্যাটিক কীওয়ার্ড সহ।

ইন্টারফেস

একটি ইন্টারফেস হল জাভাতে একটি রেফারেন্স টাইপ। এটি ক্লাসের অনুরূপ। এটি বিমূর্ত পদ্ধতির একটি সংগ্রহ। একটি ক্লাস একটি ইন্টারফেস প্রয়োগ করে, যার ফলে ইন্টারফেসের বিমূর্ত পদ্ধতিগুলি উত্তরাধিকারসূত্রে পাওয়া যায়।

বিমূর্ত পদ্ধতির পাশাপাশি, একটি ইন্টারফেসে ধ্রুবক, ডিফল্ট পদ্ধতি, স্ট্যাটিক পদ্ধতি এবং নেস্টেড প্রকার থাকতে পারে। মেথড বডি শুধুমাত্র ডিফল্ট পদ্ধতি এবং স্ট্যাটিক পদ্ধতির জন্য বিদ্যমান।

একটি ইন্টারফেস লেখা একটি ক্লাস লেখার অনুরূপ। কিন্তু একটি শ্রেণী একটি বস্তুর বৈশিষ্ট্য এবং আচরণ বর্ণনা করে। এবং একটি ইন্টারফেসে এমন আচরণ রয়েছে যা একটি ক্লাস প্রয়োগ করে।

নিম্নোক্ত ক্লাস এবং একটি ইন্টারফেসের মধ্যে গুরুত্বপূর্ণ পার্থক্য রয়েছে৷

Sr. না.
কী
ক্লাস
ইন্টারফেস
1
সমর্থিত পদ্ধতি
একটি ক্লাসে বিমূর্ত এবং কংক্রিট উভয় পদ্ধতি থাকতে পারে।
ইন্টারফেসে শুধুমাত্র বিমূর্ত পদ্ধতি থাকতে পারে। জাভা 8 এর পরে, এটিতে ডিফল্ট এবং স্ট্যাটিক পদ্ধতি থাকতে পারে।
2
একাধিক উত্তরাধিকার
একাধিক উত্তরাধিকার সমর্থিত নয়।
ইন্টারফেস একাধিক উত্তরাধিকার সমর্থন করে।
3
সমর্থিত ভেরিয়েবল
চূড়ান্ত, নন-ফাইনাল, স্ট্যাটিক এবং নন-স্ট্যাটিক ভেরিয়েবল সমর্থিত।
শুধুমাত্র স্থির এবং চূড়ান্ত ভেরিয়েবল অনুমোদিত।
4
বাস্তবায়ন
একটি ক্লাস একটি ইন্টারফেস বাস্তবায়ন করতে পারে।
ইন্টারফেস একটি ইন্টারফেস বাস্তবায়ন করতে পারে না, এটি একটি ইন্টারফেস প্রসারিত করতে পারে।
5
কীওয়ার্ড
ক্লাস কীওয়ার্ড ব্যবহার করে একটি ক্লাস ঘোষণা করা হয়।
ইন্টারফেস কীওয়ার্ড ব্যবহার করে ইন্টারফেস ঘোষণা করা হয়।
6
উত্তরাধিকার
এক্সটেন্ডস কীওয়ার্ড ব্যবহার করে একটি ক্লাস অন্য ক্লাসের উত্তরাধিকারী হতে পারে এবং একটি ইন্টারফেস প্রয়োগ করতে পারে।
ইন্টারফেস শুধুমাত্র একটি ইন্টারফেস উত্তরাধিকারী হতে পারে।
7
উত্তরাধিকার
এক্সটেন্ডস কীওয়ার্ড ব্যবহার করে একটি ক্লাস উত্তরাধিকারসূত্রে পাওয়া যেতে পারে।
ইন্টারফেস শুধুমাত্র ইমপ্লিমেন্টস কীওয়ার্ড ব্যবহার করে প্রয়োগ করা যেতে পারে।
8
অ্যাক্সেস
একটি ক্লাসে যে কোনো ধরনের সদস্য থাকতে পারে যেমন ব্যক্তিগত, পাবলিক।
ইন্টারফেসে শুধুমাত্র পাবলিক সদস্য থাকতে পারে।
9
কনস্ট্রাক্টর
একটি ক্লাসে কনস্ট্রাক্টর পদ্ধতি থাকতে পারে।
ইন্টারফেসে কনস্ট্রাক্টর থাকতে পারে না।

ক্লাস বনাম ইন্টারফেসের উদাহরণ

JavaTester.java

public class JavaTester {
   public static void main(String args[]) {
      Animal tiger = new Tiger();
      tiger.eat();
      Tiger tiger1 = new Tiger();
      tiger1.eat();
   }
}
interface Animal {
   public void eat();
}
class Tiger implements Animal {
   public void eat(){
      System.out.println("Tiger eats");
   }
}

আউটপুট

Tiger eats
Tiger eats

  1. একটি ইভেন্ট লিসেনার ইন্টারফেস এবং জাভাতে একটি ইভেন্ট অ্যাডাপ্টার ক্লাসের মধ্যে পার্থক্য কী?

  2. জাভাতে ClassNotFoundException এবং NoClassDefFoundError এর মধ্যে পার্থক্য কি?

  3. জাভাতে একটি ব্যতিক্রম ক্লাস এবং একটি ত্রুটি ক্লাসের মধ্যে পার্থক্য কী?

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