Yes, we can define a parameterized constructor in an abstract class.
Conditions for defining a parameterized constructor in an abstract class
- We need to make sure that the class which is extending an abstract class have a constructor and it can call the superclass parameterized constructor.
- We can call the superclass parameterized constructor in a subclass by using super() call.
- If we are not placing super() call in the subclass constructor, a compile-time error will occur.
Example
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();
}
}In the above example, we must place a super() call in the subclass constructor (Test), if not a compile-time error will occur.
Output
Parameterized Constructor of an abstract class a=20 Test Class Constructor