হ্যাঁ, জাভাতে কোনো অ্যাবস্ট্রাক্ট মেথড ছাড়া অ্যাবস্ট্রাক্ট ক্লাস ডিক্লেয়ার করা যায়।
- একটি অ্যাবস্ট্রাক্ট ক্লাস মানে ইমপ্লিমেন্টেশন লুকিয়ে ফাংশন ডেফিনিশন ইউজারকে দেখানো।
- একটি অ্যাবস্ট্রাক্ট ক্লাস-এ অ্যাবস্ট্রাক্ট মেথড এবং নন-অ্যাবস্ট্রাক্ট মেথড দুটোই থাকতে পারে।
- একটি অ্যাবস্ট্রাক্ট ক্লাস-এর জন্য, আমরা সরাসরি অবজেক্ট তৈরি করতে পারি না। কিন্তু ইনডায়রেক্টলি সাবক্লাস অবজেক্ট ব্যবহার করে অবজেক্ট তৈরি করতে পারি।
- একটি জাভা অ্যাবস্ট্রাক্ট ক্লাস-এ ইনস্ট্যান্স মেথড থাকতে পারে যা ডিফল্ট বিহেভিয়ার ইমপ্লিমেন্ট করে।
- একটি অ্যাবস্ট্রাক্ট ক্লাস একবারে শুধু একটি ক্লাস বা একটি অ্যাবস্ট্রাক্ট ক্লাস এক্সটেন্ড করতে পারে।
- একটি ক্লাসকে abstract ডিক্লেয়ার করা কিন্তু কোনো অ্যাবস্ট্রাক্ট মেথড না থাকলে এর মানে আমরা সেটিকে নিজস্বভাবে ইনস্ট্যানশিয়েট করার অনুমতি দিচ্ছি না।
- জাভাতে অ্যাবস্ট্রাক্ট ক্লাস ব্যবহার করা ইন্ডিকেট করে যে আমরা সরাসরি ক্লাসের অবজেক্ট তৈরি করতে পারব না।
উদাহরণ
abstract class AbstractDemo { // Abstract class
private int i = 0;
public void display() { // non-abstract method
System.out.print("Welcome to Tutorials Point");
}
}
public class InheritedClassDemo extends AbstractDemo {
public static void main(String args[]) {
AbstractDemo demo = new InheritedClassDemo();
demo.display();
}
}
উপরোক্ত উদাহরণে, AbstractDemo ক্লাসে কোনো অ্যাবস্ট্রাক্ট মেথড ডিফাইন করা হয়নি। কম্পাইলার কোনো কম্পাইল-টাইম এরর থ্রো করে না।
আউটপুট
Welcome to Tutorials Point