কম্পিউটার টিউটোরিয়াল

জাভাতে Abstract Class এবং Concrete Class-এর পার্থক্য

Java-তে abstraction অর্জন করা হয় Abstract class এবং Interface ব্যবহার করে। Abstract class-এ abstract method থাকে যা চাইল্ড ক্লাসে ইমপ্লিমেন্ট করতে হয়। Abstract class এবং Concrete class-এর মধ্যে গুরুত্বপূর্ণ পার্থক্য নিচে দেওয়া হলো:

ক্র. নং কী Abstract Class Concrete Class
১ সাপোর্টেড মেথড (Supported Methods) Abstract class-এ অ্যাবস্ট্রাক্ট এবং কনক্রিট (concrete) দুটি মেথডই থাকতে পারে। Concrete class-এ শুধু কনক্রিট মেথড থাকতে পারে। একটি মাত্র অ্যাবস্ট্রাক্ট মেথড থাকলেই ক্লাসটি abstract হয়ে যায়।
২ ইনস্ট্যানশিয়েশন (Instantiation) Abstract class new কীওয়ার্ড দিয়ে ইনস্ট্যানশিয়েট করা যায় না। Concrete class new কীওয়ার্ড দিয়ে ইনস্ট্যানশিয়েট করা যায়।
৩ অ্যাবস্ট্রাক্ট মেথড (Abstract Method) Abstract class-এ অ্যাবস্ট্রাক্ট মেথড থাকতে পারে বা নাও থাকতে পারে। Concrete class-এ অ্যাবস্ট্রাক্ট মেথড থাকতে পারে না।
৪ Final (Final Keyword) Abstract class final ডিক্লেয়ার করা যায় না। Concrete class final ডিক্লেয়ার করা যায়।
৫ কীওয়ার্ড (Keyword) Abstract class ডিক্লেয়ার করতে abstract কীওয়ার্ড ব্যবহার করতে হয়। Concrete class ডিক্লেয়ার করতে abstract কীওয়ার্ড ব্যবহার করা হয় না।
৬ ইনহেরিটেন্স (Inheritance) Abstract class extends কীওয়ার্ড দিয়ে অন্য ক্লাস ইনহেরিট করতে পারে এবং ইন্টারফেস ইমপ্লিমেন্ট করতে পারে। Interface শুধু ইন্টারফেস ইনহেরিট করতে পারে। (নোট: টেবিলের এই সেলটি মুল কন্টেন্টে ভুলে গিয়ে Interface লেখা থাকায় সংশোধন করা হয়েছে।)
৭ ইন্টারফেস (Interface) Abstract class এককেই ইন্টারফেস ইমপ্লিমেন্ট করে ইনস্ট্যানশিয়েশন করতে পারে না। চাইল্ড ক্লাস প্রয়োজন। Interface সহজে ইমপ্লিমেন্ট করা যায়।

Abstract Class vs Concrete Class উদাহরণ

JavaTester.java

public class JavaTester {
    public static void main(String args[]) {
        Cat lion = new Lion();
        lion.eat();
    }
}

abstract class Cat {
    abstract public void eat();
}

class Lion extends Cat {
    public void eat(){
        System.out.println("Lion eats");
    }
}

আউটপুট

Lion eats
  1. জাভাতে Abstract Class এবং Interface-এর পার্থক্য

  2. জাভাতে ClassNotFoundException এবং NoClassDefFoundError-এর পার্থক্য কী?

  3. জাভাতে Exception ক্লাস এবং Error ক্লাসের পার্থক্য

  4. জাভাতে অ্যাবস্ট্রাক্ট ক্লাস