কম্পিউটার

জাভাতে বিমূর্ত শ্রেণী এবং ইন্টারফেসের মধ্যে পার্থক্য


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

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

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

JavaTester.java

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

আউটপুট

Tiger eats
Lion eats

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

  2. বিমূর্ত শ্রেণী এবং ইন্টারফেসের মধ্যে পার্থক্য

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

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