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

জাভাতে অ্যাবস্ট্রাক্ট ক্লাসের অবজেক্ট তৈরি করা যায় কিনা?


না, আমরা অ্যাবস্ট্রাক্ট ক্লাসের অবজেক্ট তৈরি করতে পারি না। কিন্তু আমরা অ্যাবস্ট্রাক্ট ক্লাসের একটি রেফারেন্স ভেরিয়েবল তৈরি করতে পারি। রেফারেন্স ভেরিয়েবলটি ডেরাইভড ক্লাসের অবজেক্টগুলো (অ্যাবস্ট্রাক্ট ক্লাসের সাবক্লাস) রেফার করার জন্য ব্যবহার করা হয়।

অ্যাবস্ট্রাক্ট ক্লাস মানে ইমপ্লিমেন্টেশন লুকিয়ে ফাংশন ডেফিনিশন ইউজারকে দেখানো। একটি জাভা অ্যাবস্ট্রাক্ট ক্লাসে ইনস্ট্যান্স মেথড থাকতে পারে যা ডিফল্ট বিহেভিয়ার ইমপ্লিমেন্ট করে যদি আমরা রিকোয়ারমেন্ট জানি এবং আংশিক ইমপ্লিমেন্টেশন চাই তবে অ্যাবস্ট্রাক্ট ক্লাসে যেতে পারি।

উদাহরণ

abstract class Diagram {
    double dim1;
    double dim2;
    Diagram(double a, double b) {
        dim1 = a;
        dim2 = b;
    }
    // area is now an abstract method
    abstract double area();
}
class Rectangle extends Diagram {
    Rectangle(double a, double b) {
        super(a, b);
    }
    // override area for rectangle
    double area() {
        System.out.println("Inside Area for Rectangle.");
        return dim1 * dim2;
    }
}
class Triangle extends Diagram {
    Triangle(double a, double b) {
        super(a, b);
    }
    // override area for triangle
    double area() {
        System.out.println("Inside Area for Triangle.");
        return dim1 * dim2 / 2;
    }
}
public class Test {
    public static void main(String args[]) {
        // Diagram d = new Diagram(10, 10); // illegal now
        Rectangle r = new Rectangle(9, 5);
        Triangle t = new Triangle(10, 8);
        Diagram diagRef; // This is OK, no object is created
        diagRef = r;
        System.out.println("Area of Rectangle is: " + diagRef.area());
        diagRef = t;
        System.out.println("Area of Triangle is:" + diagRef.area());
    }
}

উপরোক্ত উদাহরণে, আমরা Diagram টাইপের অবজেক্ট তৈরি করতে পারি না কিন্তু Diagram টাইপের একটি রেফারেন্স ভেরিয়েবল তৈরি করতে পারি। এখানে আমরা Diagram টাইপের একটি রেফারেন্স ভেরিয়েবল তৈরি করেছি এবং Diagram ক্লাসের রেফারেন্স ভেরিয়েবলটি Rectangle এবং Triangle ক্লাসের অবজেক্টগুলো রেফার করতে ব্যবহার করা হয়েছে।

আউটপুট

Inside Area for Rectangle.
Area of Rectangle is: 45.0
Inside Area for Triangle.
Area of Triangle is:40.0
  1. জাভাতে Enum কি কোনো ক্লাস এক্সটেন্ড করতে পারে?

  2. জাভাতে কোনো অ্যাবস্ট্রাক্ট মেথড ছাড়া অ্যাবস্ট্রাক্ট ক্লাস ডিফাইন করা যায় কিনা?

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

  4. JSON অবজেক্ট থেকে পাইথন ক্লাস কীভাবে তৈরি করবেন?