คลาสนามธรรม
คลาสที่มีเมธอดนามธรรมตั้งแต่ 0 วิธีขึ้นไปเรียกว่าคลาสนามธรรม หากมีวิธีการที่เป็นนามธรรมอย่างน้อยหนึ่งวิธี จะต้องประกาศให้เป็นนามธรรม
หากคุณต้องการใช้เมธอดที่เป็นรูปธรรมในคลาสนามธรรม คุณต้องสืบทอดคลาส จัดเตรียมการนำไปใช้งานกับเมธอด abstract (ถ้ามี) จากนั้น คุณใช้อ็อบเจ็กต์คลาสย่อย คุณสามารถเรียกใช้เมธอดที่ต้องการได้
ตัวอย่าง
ในตัวอย่าง Java ต่อไปนี้ คลาสนามธรรม MyClass มีเมธอดที่เป็นรูปธรรมพร้อมการแสดงชื่อ
จากคลาสอื่น (AbstractClassExample) เรากำลังสืบทอดคลาส MyClass และเรียกใช้การแสดงเมธอดที่เป็นรูปธรรมโดยใช้ออบเจ็กต์คลาสย่อย
abstract class MyClass { public void display() { System.out.println("This is a method of abstract class"); } } public class AbstractClassExample extends MyClass { public static void main(String args[]) { new AbstractClassExample().display(); } }
ผลลัพธ์
This is a method of abstract class
คลาสสุดท้าย
หากคุณประกาศคลาสสุดท้าย คุณจะไม่สามารถขยายได้หากคุณพยายามขยายคลาสสุดท้าย เวลาคอมไพล์จะถูกสร้างขึ้นโดยบอกว่า “ไม่สามารถสืบทอดจาก SuperClass สุดท้าย”
ตัวอย่าง
ในโปรแกรม Java ต่อไปนี้ เรามีคลาสสุดท้ายชื่อ SuperClass และเรากำลังพยายามที่จะสืบทอดมาจากคลาสอื่น (SubClass)
final class SuperClass { public void display() { System.out.println("This is a method of the superclass"); } }
ข้อผิดพลาดในการคอมไพล์
ในการคอมไพล์ โปรแกรมนี้สร้างข้อผิดพลาดในการคอมไพล์ดังแสดงด้านล่าง -
SubClass.java:7: error: cannot inherit from final SuperClass public class SubClass extends SuperClass{ ^ 1 error
ทั้งนามธรรมและขั้นสุดท้าย
หากคุณประกาศ class abstract หากต้องการใช้งาน คุณต้องขยายคลาส และหากคุณประกาศคลาสสุดท้าย คุณจะไม่สามารถขยายได้ เนื่องจากทั้งสองขัดแย้งกัน คุณจะไม่สามารถประกาศคลาสทั้งแบบนามธรรมและขั้นสุดท้ายได้ หากคุณทำเช่นนั้น ข้อผิดพลาดเวลาคอมไพล์ จะถูกสร้างขึ้น
ตัวอย่าง
public final abstract class Example { public void sample() { } }
ข้อผิดพลาดในการคอมไพล์
Example.java:1: error: illegal combination of modifiers: abstract and final public final abstract class Example { ^ 1 error