ความแตกต่างที่สำคัญ – คลาส vs อินเตอร์เฟส
การเขียนโปรแกรมเชิงวัตถุ (OOP) เป็นกระบวนทัศน์ทั่วไปในการพัฒนาซอฟต์แวร์ ช่วยนำสถานการณ์จริงมาสู่การเขียนโปรแกรมโดยใช้คลาสและอ็อบเจ็กต์ คลาสเป็นพิมพ์เขียวเพื่อสร้างวัตถุ โปรแกรมเมอร์สามารถสร้างคลาสด้วยคุณสมบัติและเมธอด นักเรียนและครูเป็นวัตถุ การสร้างวัตถุเรียกว่าการสร้างอินสแตนซ์ OOP ยังใช้อินเทอร์เฟซ อินเทอร์เฟซและคลาสอาจดูเหมือนคล้ายกัน แต่มีความแตกต่างกัน บทความนี้กล่าวถึงความแตกต่างระหว่างคลาสและอินเทอร์เฟซ ความแตกต่างที่สำคัญระหว่างคลาสและอินเทอร์เฟซคือคลาสเป็นประเภทอ้างอิงที่เป็นพิมพ์เขียวเพื่อสร้างอินสแตนซ์ของวัตถุในขณะที่อินเทอร์เฟซเป็นประเภทอ้างอิงที่ไม่สามารถใช้เพื่อสร้างอินสแตนซ์ของวัตถุได้
คลาสคืออะไร
ใน OOP ทุกสิ่งถือเป็นวัตถุ ไม่สามารถสร้างวัตถุโดยไม่มีคลาสได้ คลาสเป็นพิมพ์เขียวเพื่อสร้างวัตถุ เมื่อสร้างบ้านสถาปนิกจะวาดแบบแปลน แผนคล้ายกับชั้นเรียน ตัวบ้านมีลักษณะคล้ายกับวัตถุ ชั้นเรียนคือแผนการสร้างวัตถุ วัตถุคือสิ่งที่สร้างขึ้นโดยใช้คลาส
คลาสมีคุณสมบัติและวิธีการ นิสิตสามารถมีคุณสมบัติ เช่น ชื่อ เกรด เลขดัชนี นักเรียนสามารถมีวิธีต่างๆ เช่น การอ่าน การเดิน การเรียน คลาสถูกสร้างขึ้นด้วยคุณสมบัติและวิธีการที่จำเป็น
ไวยากรณ์สำหรับการสร้างคลาสในภาษาการเขียนโปรแกรมหลายภาษามีดังนี้ มันถูกสร้างขึ้นโดยใช้คลาสคำหลัก
คลาส class_name {
// คุณสมบัติ
//วิธี
}
ภาษาการเขียนโปรแกรม เช่น C และ Java จะใช้ไวยากรณ์ที่คล้ายกันเพื่อสร้างวัตถุโดยใช้คลาส สมมติว่าชื่อชั้นเรียนเป็นนักเรียน
นักเรียน s1=นักเรียนใหม่ ();
s1 นี้คือเป้าหมาย คีย์เวิร์ด "ใหม่" ใช้เพื่อจัดสรรหน่วยความจำสำหรับคุณสมบัติ คลาสยังมีตัวสร้างเพื่อเริ่มต้นคุณสมบัติหรือตัวแปร
สมาชิกคลาส เช่น คุณสมบัติและเมธอดมีตัวแก้ไขการเข้าถึง ตัวระบุการเข้าถึงอธิบายการช่วยสำหรับการเข้าถึงและการมองเห็นของสมาชิกเหล่านั้นในชั้นเรียนอื่นๆ สมาชิกของชั้นเรียนสามารถมีตัวระบุการเข้าถึงได้ เช่น สาธารณะ ส่วนตัว และการป้องกัน สมาชิกสาธารณะสามารถเข้าถึงได้โดยชั้นเรียนอื่น สมาชิกส่วนตัวสามารถเข้าถึงได้ในชั้นเรียนเท่านั้น สมาชิกที่ได้รับการคุ้มครองสามารถเข้าถึงได้ภายในคลาสและคลาสย่อยที่เกี่ยวข้อง
อินเทอร์เฟซคืออะไร
นามธรรมเป็นเสาหลักของการเขียนโปรแกรมเชิงวัตถุ เป็นการซ่อนรายละเอียดการใช้งานและแสดงการทำงานให้ผู้ใช้เห็น สิ่งที่เป็นนามธรรมทำได้โดยใช้คลาสนามธรรมและอินเทอร์เฟซ วิธีการเชิงนามธรรมไม่มีการนำไปใช้ คลาสที่มีเมธอดนามธรรมอย่างน้อยหนึ่งวิธีเรียกว่าคลาสนามธรรม
เมื่อมีคลาสนามธรรมสองคลาส วิธีที่ประกาศในคลาสเหล่านั้นควรถูกนำไปใช้ คลาสใหม่ใช้เพื่อนำวิธีการเหล่านั้นไปใช้ หากทั้งสองคลาสมีวิธีการเดียวกัน อาจทำให้เกิดปัญหาความกำกวมได้ ดังนั้นภาษาโปรแกรมเช่น Java และ C มีส่วนต่อประสาน
อินเทอร์เฟซมีเพียงการประกาศวิธีการ ไม่มีวิธีการดำเนินการ นอกจากนี้ อินเทอร์เฟซไม่สามารถใช้เพื่อสร้างวัตถุได้ ใช้เพื่อรองรับการสืบทอดหลายรายการและเพื่อรักษาความปลอดภัยรหัส
ไวยากรณ์ของอินเทอร์เฟซมีดังนี้ อินเทอร์เฟซใช้คำสำคัญ "อินเทอร์เฟซ"
อินเทอร์เฟซ interface_name{
type method1(parameter_list);
type method2(parameter_list);
}
ตามด้านบน อินเทอร์เฟซมีการประกาศเท่านั้น ไม่มีคำจำกัดความ ดังนั้น อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์อ็อบเจ็กต์ได้ มันให้มุมมองที่เป็นนามธรรมว่าอินเทอร์เฟซคืออะไรเมธอดที่ประกาศในอินเทอร์เฟซสามารถนำไปใช้โดยหนึ่งหรือหลายคลาส คลาสใช้คีย์เวิร์ด "implement" เพื่อใช้งานอินเทอร์เฟซ ดูตัวอย่างด้านล่างที่เขียนโดยใช้ Java
รูปที่ 01: โปรแกรมที่ใช้อินเทอร์เฟซ
ตามโปรแกรมข้างต้น A และ B เป็นส่วนต่อประสาน อินเทอร์เฟซ A มีการประกาศวิธีการซึ่งก็คือผลรวม () อินเตอร์เฟส B มีเมธอดการประกาศย่อย () คลาส C กำลังใช้งานอินเทอร์เฟซทั้ง A และ B ดังนั้นคลาส C จึงกำหนดทั้งวิธี sum() และ sub() หลังจากสร้างวัตถุประเภท C แล้ว สามารถเรียกทั้งสองวิธี sum() และ sub().
วิธีที่ประกาศในอินเทอร์เฟซจะต้องเป็นแบบสาธารณะเสมอเพราะคลาสการใช้งานกำหนดไว้ อินเทอร์เฟซยังสามารถสืบทอดจากอินเทอร์เฟซอื่นได้
ความคล้ายคลึงกันระหว่างคลาสและอินเทอร์เฟซคืออะไร
- ทั้งสองประเภทอ้างอิง
- ทั้งสองเกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุ
ความแตกต่างระหว่างคลาสและอินเทอร์เฟซคืออะไร
คลาสเทียบกับอินเตอร์เฟส |
|
คลาสเป็นประเภทอ้างอิงที่เป็นพิมพ์เขียวเพื่อสร้างวัตถุ | อินเทอร์เฟซเป็นประเภทอ้างอิงที่ไม่สามารถสร้างอินสแตนซ์ได้ |
ตัวอย่างวัตถุ | |
คลาสใช้สำหรับสร้างอ็อบเจกต์ | อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์ได้เนื่องจากวิธีการไม่สามารถดำเนินการใดๆ ได้ |
คอนสตรัคเตอร์ | |
คลาสมีตัวสร้าง เพื่อเริ่มต้นตัวแปร | อินเทอร์เฟซไม่มีตัวสร้างเพราะแทบไม่มีตัวแปรใด ๆ ที่จะเริ่มต้น |
คำหลัก | |
คลาส A ใช้คำว่า “คลาส” | อินเทอร์เฟซใช้คำหลัก “อินเทอร์เฟซ” |
ตัวระบุการเข้าถึง | |
สมาชิกของชั้นเรียนสามารถเป็นส่วนตัว เป็นสาธารณะ และได้รับการคุ้มครอง | สมาชิกของอินเทอร์เฟซควรเป็นแบบสาธารณะเสมอเพราะคลาสการใช้งานกำหนดไว้ |
สรุป – คลาส vs อินเตอร์เฟส
คลาสและอินเทอร์เฟซใช้กันอย่างแพร่หลายในการเขียนโปรแกรมเชิงวัตถุ ความแตกต่างระหว่างคลาสและอินเทอร์เฟซคือคลาสเป็นประเภทอ้างอิงซึ่งเป็นพิมพ์เขียวเพื่อสร้างอินสแตนซ์ของวัตถุและอินเทอร์เฟซเป็นประเภทอ้างอิงซึ่งไม่สามารถใช้เพื่อสร้างอินสแตนซ์ของวัตถุได้คลาสสามารถใช้อินเทอร์เฟซได้มากมาย แต่มันสามารถขยายซุปเปอร์คลาสได้เพียงตัวเดียวเท่านั้น ในอินเทอร์เฟซสามารถสืบทอดอินเทอร์เฟซจำนวนมากได้ แต่ไม่สามารถนำไปใช้ได้ ทั้งสองมีความสำคัญของพวกเขา โปรแกรมเมอร์สามารถใช้งานได้ตามซอฟต์แวร์ที่กำลังพัฒนา
ดาวน์โหลด PDF Class vs Interface
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่ ความแตกต่างระหว่างคลาสและอินเทอร์เฟซ