ใช่ เราสามารถกำหนดคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ในคลาสนามธรรมได้
เงื่อนไขสำหรับการกำหนดคอนสตรัคเตอร์แบบกำหนดพารามิเตอร์ในคลาสนามธรรม
- เราต้องตรวจสอบให้แน่ใจว่าคลาสที่ขยายคลาสนามธรรมมีคอนสตรัคเตอร์ และสามารถเรียกคอนสตรัคเตอร์ที่มีพารามิเตอร์ซูเปอร์คลาสได้
- เราสามารถเรียกตัวสร้างพารามิเตอร์ 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