เนื้อหา
ความแตกต่างหลัก
ข้อแตกต่างที่สำคัญระหว่างคลาสนามธรรมและอินเตอร์เฟสคือโพรซีเดอร์ของอินเตอร์เฟส Java นั้นเป็นนามธรรมและไม่สามารถมีแอ็พพลิเคชันได้ อินเทอร์เฟซคือสัญญาจริง ๆ และเมื่อเราพูดถึงอินเทอร์เฟซมันใช้วิธีที่ไม่มีเนื้อความมันเป็นเพียงรูปแบบ ในขณะที่คลาสที่เป็นนามธรรมนั้นเป็นคลาสที่มีราคาแพงที่จะใช้ คลาสนามธรรมและอินเทอร์เฟซเป็นแนวคิดที่แตกต่างกันโดยสิ้นเชิงนี่เป็นสองสิ่งที่แตกต่างกัน แต่ในบางครั้งการใช้งานของพวกเขาค่อนข้างคล้ายกัน
คลาสนามธรรมคืออะไร
คลาสนามธรรมไม่ได้บอกเป็นนัยอย่างสมบูรณ์โดยโปรแกรมเมอร์ คลาสนามธรรมอาจมีวิธีนามธรรมอย่างน้อยหนึ่งวิธี พวกมันมีประโยชน์สำหรับการสร้างแบบจำลองการจัดกลุ่มหรือการจัดอันดับของชั้นเรียนและในขณะที่กำลังดำเนินการอยู่ผู้เขียนโปรแกรมจะได้รับแนวคิดว่าจะต้องสร้างอะไรหลังจากเห็นความต้องการ ชั้นนามธรรมไม่สามารถพึ่งพาได้อย่างสมบูรณ์เพราะมันขาดบางส่วน ประเด็นหลักที่อยู่เบื้องหลังการโต้แย้งนี้คือคลาสนามธรรมเป็นวัตถุที่มุ่งเน้นอย่างเข้มงวดแม้ว่าจะมีวิธีการที่มุ่งหน้า แต่ไม่มีร่างกาย เมื่อเราพูดถึงคลาสนามธรรมมีการเชื่อมต่อที่แข็งแกร่งระหว่างคลาสสองคลาสเนื่องจากคลาสเหล่านี้มักจะได้รับหรือสืบทอดจากคลาสอื่น
อินเตอร์เฟสคืออะไร
เมื่อเราพูดถึง interface ในทางกลับกันความสัมพันธ์หรือการสื่อสารระหว่าง interface เองกับคลาสที่แสดงว่า interface นั้นไม่แข็งแรงเหมือนในคลาสนามธรรม คลาส Java สามารถใช้หลายอินเตอร์เฟส แต่สามารถสืบทอดจากคลาสนามธรรมเดียว นั่นหมายความว่าเมื่อคุณต้องการให้มีการโต้ตอบหลายครั้งในคราวเดียวอินเตอร์เฟสก็เป็นของคุณ นอกเหนือจากสถานการณ์ทั้งหมดนี้แม้ว่าคุณไม่ต้องการให้ API เปลี่ยนแปลงไปสักพักอินเทอร์เฟซก็เป็นตัวเลือกที่ดีที่สุดสำหรับคุณ อินเทอร์เฟซเป็นสัญญาระหว่างวัตถุสองอย่างที่แตกต่างกัน เพื่อตัดให้สั้นอินเทอร์เฟซหมุนรอบฟังก์ชันการทำงาน
ความแตกต่างที่สำคัญ
- คลาสนามธรรมถูกจัดวางวัตถุในขณะที่อินเทอร์เฟซจะเน้นฟังก์ชัน
- เมื่อคุณต้องการให้ API คงที่ในขณะนั้นให้คุณเลือกอินเตอร์เฟสมากกว่าคลาสนามธรรม
- สามารถรับมรดกหลายรายการได้จากการเชื่อมต่อหลายอินเตอร์เฟส ในขณะที่อยู่ในคลาส abstract คุณจะไม่สามารถรับมรดกได้หลายอย่าง
- หากคุณมีความรู้สึกว่าคุณในอนาคตคุณจะต้องเพิ่มวิธีการในการทำงานของคุณแล้วเลือกระดับนามธรรมไม่ได้อินเตอร์เฟซ
- คลาสนามธรรมให้แอ็พพลิเคชันคลาสพื้นฐานทั่วไป แต่ไม่มีสิ่งใดเกิดขึ้นในอินเตอร์เฟส
- ในอินเทอร์เฟซวิธีการทั้งหมดที่คุณใช้เป็นสาธารณะ แต่ในระดับนามธรรมคุณยังสามารถใช้วิธีการที่ไม่ใช่แบบสาธารณะ
- ตัวสร้างไม่ได้อยู่ในอินเตอร์เฟส แต่เกิดขึ้นในคลาสนามธรรม
- สมาชิกที่สมบูรณ์ของคลาสนามธรรมอาจเป็นแบบสแตติก แต่ไม่ใช่ส่วนต่อประสาน