انتزاع داده فرآیند پنهان کردن جزئیات خاص و نشان دادن تنها اطلاعات ضروری به کاربر است.
انتزاع را می توان با کلاس های انتزاعی یا
رابط (که در فصل بعدی بیشتر در مورد آنها خواهید آموخت).
کلید کلیدی 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
}
}برای دستیابی به امنیت - جزئیات خاصی را پنهان کنید و فقط موارد مهم را نشان دهید
جزئیات یک شی.
توجه: انتزاع را میتوان با اینترفیسها نیز بدست آورد، که در فصل بعدی بیشتر در مورد آنها خواهید آموخت.