C# - Abstraction
C# - التجريد (Abstraction)
التجريد هو مبدأ في البرمجة الكائنية (OOP) يهدف إلى إخفاء التفاصيل المعقدة والتركيز فقط على ما يهم. في C#، يُطبق التجريد باستخدام الكلاسات المجردة (abstract classes) أو الواجهات (interfaces).
🧠 لماذا نستخدم التجريد؟
- لإخفاء منطق التنفيذ عن المستخدم أو الكلاس المشتق.
- لتحديد هيكل عام يُجبر الكلاسات الأخرى على اتباعه.
- لفصل "ما يجب فعله" عن "كيفية فعله".
📌 استخدام abstract class:
abstract class Animal
{
public abstract void MakeSound(); // لا تحتوي على تنفيذ
public void Sleep()
{
Console.WriteLine("ينام...");
}
}
class Cat : Animal
{
public override void MakeSound()
{
Console.WriteLine("القط يقول: مياو");
}
}
class Program
{
static void Main()
{
Animal a = new Cat();
a.MakeSound();
a.Sleep();
}
}
✅ الدالة MakeSound()
مجردة، وتُجبر الكلاس Cat
على تنفيذها.
⚡ الفرق بين abstract و interface:
الخاصية | abstract class | interface |
---|---|---|
يُستخدم مع | وراثة | تطبيق (Implementation) |
دوال تحتوي على منطق؟ | ✅ ممكن | ❌ لا، فقط التوقيع (حتى C# 7) |
وراثة متعددة | ❌ لا تدعم | ✅ ممكن تطبيق أكثر من واجهة |
أعضاء خاصة | ✅ ممكن | ❌ غير ممكن |
🎯 ملاحظات:
- الكلاس المجرد لا يمكن إنشاء كائن منه مباشرة.
- التجريد يُستخدم كثيرًا في تصميم الأنظمة المعتمدة على العقود (Contract-based design).
- يمكن للكلاس المجرد أن يحتوي على دوال عادية ودوال مجردة.
تعليقات
إرسال تعليق