ใน C # คลาสที่ใช้อินเทอร์เฟซจะต้องกำหนดสมาชิกทั้งหมดของอินเทอร์เฟซนั้น ในกรณีของคลาสนามธรรมคุณเพียงแค่กำหนดสมาชิกเหล่านั้นด้วยabstract
คีย์เวิร์ด:
interface IFoo
{
void Bar();
}
abstract class Foo : IFoo
{
public abstract void Bar();
}
หรือจะพูดอีกอย่าง: คุณไม่จำเป็นต้อง"ใช้"มัน (ซึ่งจะเป็นข้อ จำกัด ที่แย่มากสำหรับคลาสนามธรรม); อย่างไรก็ตามใน C # คุณต้องบอกคอมไพเลอร์ว่าคุณจงใจส่งบัคไปยังคลาสย่อยที่เป็นรูปธรรม - และบรรทัดโค้ดด้านบนจะแสดงวิธีการทำเช่นนั้น
ความคิดเห็นและผู้โหวตที่บ่นว่านี่ไม่ใช่คำตอบสำหรับคำถามจะขาดประเด็นไป มีคนเข้ามาที่ Stack Overflow หลังจากได้รับข้อผิดพลาดของคอมไพเลอร์นี้ แต่มีคลาสนามธรรมซึ่งอาจเป็นข้อผิดพลาดในการจัดหาการนำไปใช้งานจะติดขัดโดยไม่มีวิธีแก้ปัญหาที่ดี - จะต้องเขียนวิธีการใช้งานที่ทำให้เกิดข้อยกเว้นรันไทม์ซึ่งเป็นงานที่น่ากลัว - รอบด้าน - จนกว่าจะมีข้อมูลข้างต้น ไม่ว่าจะดีหรือไม่ดีที่ C # ต้องการคำพยานนี้อยู่นอกขอบเขตของ Stack Overflow และไม่เกี่ยวข้องกับคำถามหรือคำตอบนี้