เราเรียกคลาสที่แก้ไขด้วยคีย์เวิร์ด abstract ว่าเป็น abstract class ซึ่งก็คือ abstract class ตัวอย่างเช่น:
บทคัดย่อคลาสเอ{…}
เราเรียกวิธีการที่แก้ไขด้วยคีย์เวิร์ด abstract ว่า abstract method ซึ่งก็คือ abstract method เช่น:
นามธรรม int สูงสุด(int x,int y);
สังเกต:
1) สำหรับวิธีนามธรรม อนุญาตเฉพาะการประกาศเท่านั้น และไม่อนุญาตให้นำไปใช้ นั่นคือ ไม่มีเนื้อหาของวิธีการ และสุดท้ายและนามธรรมไม่ได้รับอนุญาตให้ใช้เพื่อแก้ไขวิธีการหรือคลาสในเวลาเดียวกัน และแบบคงที่คือ ไม่อนุญาตให้แก้ไขวิธีนามธรรม กล่าวคือ วิธีการนามธรรมจะต้องเป็นวิธีการตัวอย่าง
2) คลาสนามธรรมสามารถมีวิธีนามธรรมหรือวิธีที่ไม่ใช่นามธรรม แต่คลาสที่ไม่ใช่นามธรรมไม่สามารถมีวิธีนามธรรมได้
ตัวอย่างเช่น: เมธอด max() ในคลาส A เป็นเมธอดนามธรรม และเมธอด min() เป็นเมธอดปกติ (เมธอดที่ไม่ใช่นามธรรม)
abstractclassA{abstractintmax(intx,inty);intmin(intx,inty){returnx<y?x:y;}}
สำหรับคลาสนามธรรม คุณไม่สามารถใช้ตัวดำเนินการใหม่เพื่อสร้างออบเจ็กต์ของคลาสนี้ หากคลาสที่ไม่ใช่คลาสนามธรรมเป็นคลาสย่อยของคลาสนามธรรม จะต้องแทนที่เมธอด abstract ของคลาสพาเรนต์ และให้เนื้อหาของเมธอด ที่ไม่สามารถ เหตุผลที่อนุญาตให้ใช้ Final และ Abstract เพื่อแก้ไขเมธอดหรือคลาสไปพร้อมๆ กันได้
เราสามารถใช้คลาสนามธรรมในการประกาศวัตถุได้ แม้ว่าวัตถุจะไม่สามารถสร้างได้โดยใช้ตัวดำเนินการใหม่ แต่วัตถุก็สามารถกลายเป็นวัตถุอัปคาสต์ของวัตถุคลาสย่อยได้ เพื่อให้วัตถุสามารถเรียกใช้เมธอดที่ถูกแทนที่โดยคลาสย่อยได้
หมายเหตุ: คลาสนามธรรมอาจไม่มีวิธีนามธรรม ถ้าคลาสนามธรรมเป็นคลาสย่อยของคลาสนามธรรม ก็สามารถแทนที่วิธีนามธรรมของคลาสแม่หรือสืบทอดวิธีนามธรรมของคลาสแม่ได้