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