হ্যাঁ, আমরা একটি অ্যাবস্ট্রাক্ট ক্লাসে প্যারামিটারাইজড কনস্ট্রাক্টর সংজ্ঞায়িত করতে পারি।
অ্যাবস্ট্রাক্ট ক্লাসে প্যারামিটারাইজড কনস্ট্রাক্টর সংজ্ঞায়িত করার শর্তাবলী
- নিশ্চিত করতে হবে যে অ্যাবস্ট্রাক্ট ক্লাসকে এক্সটেন্ড করা ক্লাসের একটি কনস্ট্রাক্টর আছে এবং সেটি সুপারক্লাসের প্যারামিটারাইজড কনস্ট্রাক্টর কল করতে পারে।
- সাবক্লাসে super() কল ব্যবহার করে সুপারক্লাসের প্যারামিটারাইজড কনস্ট্রাক্টর কল করা যেতে পারে।
- যদি সাবক্লাস কনস্ট্রাক্টরে super() কল না দেওয়া হয়, তবে একটি কম্পাইল-টাইম এরর হবে।
উদাহরণ
abstract class AbstractClassTest {
AbstractClassTest(int a) { // Parameterized Constructor
System.out.println("Parameterized Constructor of an abstract class a="+ x);
}
}
public class Test extends AbstractDemo {
Test() {
super(20);
System.out.println("Test Class Constructor");
}
public static void main(String[] args) {
Test obj = new Test();
}
}
উপরের উদাহরণে, আমাদের অবশ্যই সাবক্লাস কনস্ট্রাক্টরে (Test) একটি super() কল রাখতে হবে, না হলে কম্পাইল-টাইম এরর হবে।
আউটপুট
Parameterized Constructor of an abstract class a=20 Test Class Constructor