ในทางเทคนิคแล้วความแตกต่างนั้นไม่สำคัญมากนัก แต่ในทางแนวคิดแล้วมันมีความแตกต่างอย่างสิ้นเชิงและนำไปสู่ความแตกต่างทางเทคนิคที่คนอื่นพูดถึง
Superclass นามธรรมเป็นสิ่งที่ดูเหมือนว่ามันเป็นประเภททั่วไปที่มีการใช้ร่วมกันโดยประเภทอื่น ๆ เช่น Cats and Dogs เป็นสัตว์
อินเทอร์เฟซเป็นสิ่งที่ดูเหมือนกับเป็นอินเทอร์เฟซที่คลาสอื่นสามารถสื่อสารกับวัตถุได้ หากคุณต้องการสร้าง Cat Walk คุณก็โอเคทำให้ Cat ใช้อินเทอร์เฟซ CanWalk เหมือนกันสำหรับจิ้งจกแม้ว่าพวกเขาจะเดินแตกต่างกันมาก ในทางกลับกันงูไม่ได้ใช้ CanWalk ดังนั้นคุณจึงไม่สามารถบอกให้ Walk ในขณะเดียวกัน Lizard and Snake (หรืออาจจะเป็น subclasses ที่ชัดเจนกว่า - ฉันไม่ใช่ผู้เชี่ยวชาญ) อาจทำให้ผิวของพวกมันหลั่งและใช้ CanShed ในขณะที่แมวไม่สามารถทำเช่นนั้นได้
แต่พวกเขาทั้งหมดยังคงเป็นสัตว์และมีคุณสมบัติทั่วไปบางอย่างเช่นพวกเขายังมีชีวิตอยู่หรือตายไปแล้ว
นี่คือสาเหตุที่วิธีการทั้งหมดบนอินเทอร์เฟซจะต้องนำไปใช้ในที่สาธารณะ (หรืออย่างชัดเจนใน C #) สาเหตุที่จุดในอินเทอร์เฟซที่ถูกซ่อนจากชั้นเรียนที่เชื่อมต่อกับวัตถุคืออะไร? นอกจากนี้ยังเป็นสาเหตุที่คุณสามารถมีหลายอินเทอร์เฟซกับวัตถุแม้ว่าภาษาไม่สนับสนุนการสืบทอดหลายรายการ
เมื่อต้องการย้อนกลับไปยังคำถามของคุณเมื่อคุณดูด้วยวิธีนี้มีเหตุผลที่จะมีซูเปอร์คลาสที่เป็นนามธรรมอย่างสิ้นเชิง