คลาสที่มีตัวแก้ไขนามธรรมคือคลาสนามธรรม และคลาสนามธรรมไม่สามารถสร้างอ็อบเจ็กต์อินสแตนซ์ได้ คลาสที่มีวิธีนามธรรมจะต้องถูกกำหนดให้เป็นคลาสนามธรรม และวิธีการในคลาสคลาสนามธรรมไม่จำเป็นต้องเป็นนามธรรม วิธีการเชิงนามธรรมที่กำหนดในคลาสนามธรรมจะต้องถูกนำไปใช้ในคลาสย่อยที่เป็นรูปธรรม ดังนั้นจึงไม่สามารถมีตัวสร้างเชิงนามธรรมหรือวิธีสแตติกเชิงนามธรรมได้ หากคลาสย่อยไม่ได้ใช้วิธีนามธรรมทั้งหมดในคลาสพาเรนต์นามธรรม คลาสย่อยจะต้องถูกกำหนดให้เป็นประเภทนามธรรมด้วย
อินเทอร์เฟซอาจกล่าวได้ว่าเป็นกรณีพิเศษของคลาสนามธรรม และวิธีการทั้งหมดในอินเทอร์เฟซจะต้องเป็นนามธรรม คำจำกัดความของวิธีการในอินเทอร์เฟซเริ่มต้นเป็นประเภทนามธรรมสาธารณะ และประเภทตัวแปรสมาชิกในอินเทอร์เฟซเริ่มต้นเป็นสาธารณะคงที่ขั้นสุดท้าย
ลองเปรียบเทียบความแตกต่างทางไวยากรณ์ระหว่างทั้งสอง :
1. คลาสนามธรรมสามารถมีคอนสตรัคเตอร์ได้ แต่อินเทอร์เฟซไม่สามารถมีคอนสตรัคเตอร์ได้
2. อาจมีตัวแปรสมาชิกสามัญในคลาสนามธรรม แต่ไม่มีตัวแปรสมาชิกสามัญในส่วนต่อประสาน
3. คลาสนามธรรมสามารถมีวิธีการธรรมดาที่ไม่ใช่นามธรรมได้ วิธีการทั้งหมดในส่วนต่อประสานจะต้องเป็นนามธรรม และไม่สามารถมีวิธีการธรรมดาที่ไม่ใช่นามธรรมได้
4. ประเภทการเข้าถึงของวิธีนามธรรมในคลาสนามธรรมสามารถเป็นแบบสาธารณะ ป้องกัน และ (เป็นประเภทเริ่มต้น)
ไม่มีการรายงานข้อผิดพลาดภายใต้ eclipse แต่ไม่ควรทำงาน) แต่วิธี abstract ในอินเทอร์เฟซสามารถเป็นประเภทสาธารณะเท่านั้น และค่าเริ่มต้นคือประเภทนามธรรมสาธารณะ
5. คลาสนามธรรมสามารถมีวิธีการคงที่ได้ แต่อินเทอร์เฟซไม่สามารถมีวิธีการคงที่ได้
6. ทั้งคลาสนามธรรมและอินเทอร์เฟซสามารถมีตัวแปรสมาชิกแบบคงที่ได้ ประเภทการเข้าถึงของตัวแปรสมาชิกแบบคงที่ในคลาสนามธรรมสามารถกำหนดเองได้ แต่ตัวแปรที่กำหนดในอินเทอร์เฟซสามารถเป็นประเภทสุดท้ายแบบคงที่สาธารณะเท่านั้น และค่าเริ่มต้นคือประเภทสุดท้ายแบบคงที่สาธารณะ
7. คลาสหนึ่งสามารถใช้หลายอินเทอร์เฟซได้ แต่สามารถสืบทอดคลาสนามธรรมได้เพียงคลาสเดียวเท่านั้น
พูดคุยเกี่ยวกับความแตกต่างระหว่างทั้งสองในแอปพลิเคชัน :
อินเทอร์เฟซมีบทบาทมากขึ้นในวิธีการออกแบบสถาปัตยกรรมระบบ และส่วนใหญ่จะใช้เพื่อกำหนดสัญญาการสื่อสารระหว่างโมดูล คลาสนามธรรมมีบทบาทในการใช้งานโค้ดและสามารถรับรู้การใช้โค้ดซ้ำได้ ตัวอย่างเช่น รูปแบบการออกแบบวิธีการเทมเพลตเป็นแอปพลิเคชันทั่วไปของคลาสนามธรรม ถือว่าคลาส Servlet ทั้งหมดในโครงการต้องใช้วิธีเดียวกันในการพิจารณาสิทธิ์และการบันทึก เข้าสู่ระบบและจัดการข้อยกเว้น จากนั้นคุณสามารถกำหนดคลาสฐานนามธรรมเพื่อให้ Servlets ทั้งหมดสืบทอดคลาสฐานนามธรรมนี้ การพิจารณาสิทธิ์ การบันทึกการเข้าถึง และรหัสการจัดการข้อยกเว้นจะเสร็จสมบูรณ์ กรอกรหัสตรรกะทางธุรกิจของตนให้สมบูรณ์เท่านั้น รหัสหลอกมีดังนี้: