Abstraction (کلاس انتزاعی) در سی شارپ

Abstraction (کلاس انتزاعی) در سی شارپ

زمان مطالعه

4 دقیقه

تعداد بازدید

695

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

Abstraction در سی شارپ

انتزاع داده ها فرآیندی است برای پنهان کردن جزئیات خاص و نمایش تنها اطلاعات ضروری به کاربر.
انتزاع (Abstraction) را می توان با کلاسهای انتزاعی (abstract classes) یا رابط ها (interfaces) به دست آورد

کلمه کلیدی انتزاعی (abstract) برای کلاس ها و متدها استفاده می شود:

کلاس انتزاعی: یک کلاس محدود است که نمی توان از آن برای ایجاد اشیا استفاده کرد (برای دسترسی به آن باید از یک کلاس دیگر به ارث برسد).

متد انتزاعی: فقط در کلاس انتزاعی قابل استفاده است و بدنه ندارد.
یک کلاس انتزاعی می تواند هم متد انتزاعی و هم عادی داشته باشد:

abstract class Animal 
{
  public abstract void animalSound();
  public void sleep() 
  {
    Console.WriteLine("Zzz");
  }
}

از مثال بالا ، ایجاد یک شی از کلاس Animal امکان پذیر نیست:

Animal myObj = new Animal(); // Will generate an error (Cannot create an instance of the abstract class or interface 'Animal')

برای دسترسی به کلاس انتزاعی ، باید از کلاس دیگری به ارث برود. بیایید کلاس Animal را که در درس Polymorphism استفاده کردیم به یک کلاس انتزاعی تبدیل کنیم.

از درس وراثت بخاطر دارید که ما از نماد  برای به ارث بردن از یک کلاس استفاده می کنیم و از کلمه کلیدی override برای غلبه بر متد کلاس پایه استفاده می کنیم.

// Abstract class
abstract class Animal
{
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep()
  {
    Console.WriteLine("Zzz");
  }
}

// Derived class (inherit from Animal)
class Pig : Animal
{
  public override void animalSound()
  {
    // The body of animalSound() is provided here
    Console.WriteLine("The pig says: wee wee");
  }
}

class Program
{
  static void Main(string[] args)
  {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();  // Call the abstract method
    myPig.sleep();  // Call the regular method
  }
}

چرا و چه موقع می توان از کلاسها و روشهای انتزاعی استفاده کرد؟
برای دستیابی به امنیت - جزئیات خاصی را پنهان کنید و فقط جزئیات مهم یک شی را نشان دهید.

توجه: انتزاع را می توان با Interfaces نیز بدست آورد که در درس بعدی با آنها بیشتر آشنا خواهید شد.


پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی