ความแตกต่างระหว่างคลาสนามธรรมและส่วนต่อประสาน

ความแตกต่างระหว่างคลาสนามธรรมและส่วนต่อประสาน
ความแตกต่างระหว่างคลาสนามธรรมและส่วนต่อประสาน

วีดีโอ: ความแตกต่างระหว่างคลาสนามธรรมและส่วนต่อประสาน

วีดีโอ: ความแตกต่างระหว่างคลาสนามธรรมและส่วนต่อประสาน
วีดีโอ: คุณวีระวงค์ จิตต์มิตรภาพ "กฎหมายการร่วมลงทุนระหว่างภาครัฐและภาคเอกชน" PublicPrivatePartnership(PPP) 2024, พฤศจิกายน
Anonim

คลาสนามธรรมกับอินเตอร์เฟส

Abstract class และ Interface เป็นโครงสร้างเชิงวัตถุสองโครงสร้างที่พบในภาษาการเขียนโปรแกรมเชิงวัตถุมากมาย เช่น Java คลาสนามธรรมถือได้ว่าเป็นรุ่นนามธรรมของคลาสปกติ (คอนกรีต) ในขณะที่อินเทอร์เฟซถือได้ว่าเป็นวิธีการดำเนินการตามสัญญา คลาสนามธรรมเป็นคลาสที่ไม่สามารถเริ่มต้นได้ แต่สามารถขยายได้ อินเทอร์เฟซเป็นประเภทที่ต้องใช้งานโดยคลาสอื่น ใน Java คลาส Abstract ถูกประกาศโดยใช้คำหลัก Abstract ในขณะที่คำหลักของอินเทอร์เฟซใช้เพื่อกำหนดอินเทอร์เฟซ

บทคัดย่อคืออะไร

โดยปกติ คลาสนามธรรม หรือที่เรียกว่า Abstract Base Classes (ABC) จะไม่สามารถสร้างอินสแตนซ์ได้ (ไม่สามารถสร้างอินสแตนซ์ของคลาสนั้นได้) ดังนั้น คลาสนามธรรมจะมีความหมายก็ต่อเมื่อภาษาการเขียนโปรแกรมรองรับการสืบทอด (ความสามารถในการสร้างคลาสย่อยจากการขยายคลาส) คลาสนามธรรมมักจะแสดงแนวคิดหรือเอนทิตีที่เป็นนามธรรมที่มีการนำไปใช้บางส่วนหรือไม่มีเลย ดังนั้นคลาสนามธรรมจึงทำหน้าที่เป็นคลาสพาเรนต์ซึ่งคลาสย่อยได้รับมา ดังนั้นคลาสย่อยจะแชร์คุณสมบัติที่ไม่สมบูรณ์ของคลาสพาเรนต์และสามารถเพิ่มฟังก์ชันการทำงานให้สมบูรณ์ได้

คลาสนามธรรมอาจมีเมธอดนามธรรม คลาสย่อยที่ขยายคลาสนามธรรมอาจใช้วิธีนามธรรม (สืบทอด) เหล่านี้ ถ้าคลาสลูกใช้วิธี Abstract ทั้งหมด คลาสนั้นจะเป็นคลาสที่เป็นรูปธรรม แต่ถ้าไม่ใช่ คลาสย่อยก็จะกลายเป็นคลาสนามธรรมด้วย ทั้งหมดนี้หมายความว่า เมื่อโปรแกรมเมอร์เสนอชื่อคลาสเป็นบทคัดย่อ เธอกำลังบอกว่าคลาสจะไม่สมบูรณ์และจะมีองค์ประกอบที่จำเป็นต้องทำให้สมบูรณ์โดยคลาสย่อยที่สืบทอดมานี่เป็นวิธีที่ดีในการสร้างสัญญาระหว่างโปรแกรมเมอร์สองคน ซึ่งทำให้งานในการพัฒนาซอฟต์แวร์ง่ายขึ้น โปรแกรมเมอร์ที่เขียนโค้ดเพื่อสืบทอดต้องปฏิบัติตามคำจำกัดความของเมธอด (แต่แน่นอนว่าสามารถนำไปใช้ได้เอง)

อินเทอร์เฟซคืออะไร

อินเทอร์เฟซเป็นประเภทนามธรรมที่ใช้เพื่อระบุสัญญาที่คลาสควรใช้งาน ซึ่งใช้อินเทอร์เฟซนั้น คำหลักของอินเทอร์เฟซใช้เพื่อกำหนดอินเทอร์เฟซและคำหลัก Implements ใช้สำหรับการนำอินเทอร์เฟซไปใช้โดยคลาส (ในภาษาการเขียนโปรแกรม Java) โดยปกติอินเทอร์เฟซจะมีเฉพาะลายเซ็นเมธอดและการประกาศคงที่เท่านั้น อินเทอร์เฟซใดๆ ที่ใช้อินเทอร์เฟซเฉพาะควรใช้วิธีการทั้งหมดที่กำหนดไว้ในอินเทอร์เฟซ หรือควรประกาศเป็นคลาสนามธรรม ใน Java ประเภทของการอ้างอิงอ็อบเจ็กต์สามารถกำหนดเป็นประเภทอินเทอร์เฟซได้ แต่อ็อบเจกต์นั้นต้องเป็นโมฆะหรือควรเก็บอ็อบเจ็กต์ของคลาส ซึ่งใช้อินเทอร์เฟซนั้นโดยเฉพาะการใช้คำสำคัญ Implements ใน Java คุณสามารถใช้งานหลายอินเทอร์เฟซกับคลาสเดียวได้

Abstract Class และ Interface ต่างกันอย่างไร

คลาสนามธรรมมักจะเป็นตัวแทนของแนวคิดนามธรรมหรือเอนทิตีที่มีการนำไปใช้บางส่วนหรือไม่มีเลย ในทางกลับกัน อินเทอร์เฟซเป็นประเภทนามธรรมที่ใช้ในการระบุสัญญาที่ควรดำเนินการโดยคลาส คลาสนามธรรมควรได้รับการสืบทอด (หรือขยาย) ในขณะที่ควรใช้อินเทอร์เฟซ คลาสนามธรรมอาจมีเมธอดนามธรรม ในขณะที่อินเทอร์เฟซควรมีเฉพาะเมธอดนามธรรม คลาสนามธรรมสามารถมีตัวแปรใดก็ได้ แต่อินเทอร์เฟซสามารถกำหนดได้เฉพาะค่าคงที่เท่านั้น คลาสไม่สามารถสืบทอดจากคลาสนามธรรมมากกว่าหนึ่งคลาส แต่สามารถใช้หลายอินเตอร์เฟสได้ อินเทอร์เฟซไม่สามารถใช้อินเทอร์เฟซอื่นได้ อย่างไรก็ตาม อินเทอร์เฟซสามารถขยายคลาสได้