ใช่ เราสามารถกำหนดคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ในคลาสนามธรรมได้
เงื่อนไขสำหรับการกำหนดคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ในคลาสนามธรรม
- เราต้องตรวจสอบให้แน่ใจว่าคลาสที่ขยายคลาสนามธรรมมีคอนสตรัคเตอร์ และสามารถเรียกคอนสตรัคเตอร์ที่มีพารามิเตอร์ซูเปอร์คลาสได้
- เราสามารถเรียกตัวสร้างพารามิเตอร์ superclass ใน subclass โดยใช้ 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) หากไม่ใช่ข้อผิดพลาดในการคอมไพล์จะเกิดขึ้น
ผลลัพธ์
Parameterized Constructor of an abstract class a=20 Test Class Constructor