Inheritance in Interfaces
เสฏฐพงศ์ มณีศาสตร์ 650710591
การสืบทอดอินเทอร์เฟซใน C#
การสืบทอดอินเทอร์เฟซ หมายถึงการสร้างอินเทอร์เฟซใหม่โดยรับสมาชิก (เมธอด, คุณสมบัติ) ทั้งหมดจากอินเทอร์เฟซที่มีอยู่แล้วมาใช้งาน และสามารถเพิ่มสมาชิกใหม่เข้าไปได้
ใน C# สามารถสืบทอดอินเทอร์เฟซได้โดยใช้เครื่องหมาย colon ( : ) ต่อท้ายหลังชื่ออินเทอร์เฟซที่จะทำการสร้าง แล้ว ตามด้วยชื่อของอินเทอร์เฟซที่ต้องการจะสืบทอด
Syntax:
// กำหนดอินเทอร์เฟซ
public interface interface1
{
void mymethod1();
void mymethod2();
}
// การสืบทอดอินเทอร์เฟซ
public interface interface2 : interface1
{
void mymethod3();
}ตัวอย่างการสืบทอดอินเทอร์เฟซ:
public interface IAnimal
{
void Eat();
}
public interface ICanine : IAnimal
{
void Bark();
}
// คลาสที่implementอินเทอร์เฟซ ICanine จะต้องimplement ทั้ง Eat และ Bark
public class Dog : ICanine
{
public void Eat()
{
Console.WriteLine("The dog is eating.");
}
public void Bark()
{
Console.WriteLine("The dog is barking.");
}
}การสืบทอดหลายอินเทอร์เฟซ
ใน C# สามารถสืบทอดได้หลายอินเทอร์เฟซพร้อมกันโดยใช้เครื่องหมายคอมมา (,)
,)ประโยชน์ของการใช้การสืบทอดอินเทอร์เฟซ
ด้านการจัดระเบียบโค้ด: การสืบทอดอินเทอร์เฟซช่วยให้สามารถรวมพฤติกรรมของอินเทอร์เฟซหลาย ๆ ตัวไว้ในคลาสเดียวกันได้ โดยที่โค้ดจะถูกจัดระเบียบและทำความเข้าใจได้ง่ายขึ้น
ด้านการลดความซ้ำซ้อนของโค้ด: เมื่อมีหลายอินเทอร์เฟซที่มีเมธอดคล้ายกัน การใช้การสืบทอดจะช่วยลดการเขียนโค้ดซ้ำซ้อน เพราะสามารถสร้างอินเทอร์เฟซพื้นฐานแล้วค่อยสืบทอดจากอินเทอร์เฟซนั้นมา implement ต่อได้
เพิ่มความยืดหยุ่น: การสืบทอดในอินเทอร์เฟซช่วยให้ผู้พัฒนาสามารถปรับเปลี่ยนหรือขยายฟังก์ชันการทำงานของอินเทอร์เฟซได้โดยไม่ต้องเปลี่ยนแปลงโค้ดหลักมากเกินไป สามารถเพิ่มอินเทอร์เฟซใหม่ที่สืบทอดจากอินเทอร์เฟซเดิมได้โดยไม่ยุ่งยาก
เปรียบเทียบภาษา C# กับ C++,Java,Python
การสืบทอดอินเทอร์เฟซของ C++
ไม่ได้มีคอนเซ็ปต์ของอินเทอร์เฟซโดยตรง แต่เราสามารถสร้างโครงสร้างที่คล้ายกันได้โดยใช้ Abstract Class
รองรับการสืบทอดหลายอินเทอร์เฟซ
การสืบทอดอินเทอร์เฟซของ java
คล้ายกับภาษา C# รองรับการสืบทอดหลายอินเทอร์เฟซ
การสืบทอดอินเทอร์เฟซของ Python
ใน Python ไม่มีการสืบทอดอินเทอร์เฟซโดยตรงเหมือนในภาษาอื่น เช่น Java หรือ C# แต่เราสามารถใช้แนวคิดที่คล้ายกันผ่านการใช้ abstract base classes (ABCs) และ สามารถ multiple inheritance ได้
ตัวอย่าง
Video:
Slide:
Reference:
inheritance in C#
C# Inheritance in interfaces
Interfaces in C++:
inheritance in C++
inheritance in Java
inheritance in Python
interfaces in Python:
Last updated
