آموزش کلاس های انتزاعی بیشتر (بخش ۲)

رتبه: 0 ار 0 رای sssss
کلاس های انتزاعی
نویسنده: میلاد حیدری زمان مطالعه 2 دقیقه
Banner Image

در فصل قبلی؛ نگاهی به کلاس های انتزاعی انداخته ایم. در این فصل، مثال ها و نیز متدهای انتزاعی را بیشتر بسط می دهیم. متدهای انتزاعی را می توان به طور کلی فقط در کلاس های انتزاعی استفاده کرد. تعریف آنها مشابه یک متد معمول می باشد اما کدی درون آنها وجود ندارد.

abstract class FourLeggedAnimal

{

public abstract string Describe();

}

بنابراین، چرا می خواهید یک متد خالی را تعریف کنید که هیچ کاری انجام ندهد؟ زیرا یک متد انتزاعی، تعهدی برای اجرای آن متد در کلیه زیر کلاس ها است. در واقع، در زمان کامپایل شدن کد نویسی، این متد بررسی می شود ، تا اطمینان حاصل شود که زیر کلاس های شما، این روش تعریف شده را دارا می باشد. دوباره این که، شیوه ای عالی برای ایجاد کلاس پایه برای چیزی است، در حالی که هنوز هم کنترل خاصی روی آنچه که زیر کلاس ها باید انجام دهند حفظ می شود. با توجه به این نکته، هر زمان که نیاز به استفاده از متدهای تعریف شده به عنوان متد انتزاعی در نوع پایه داشته باشید ، می توانید همیشه با یک زیر کلاس به عنوان پایه آن رفتار کنید. به عنوان نمونه، مثال زیر را در نظر بگیرید:

namespace AbstractClasses

{

class Program

{

static void Main(string[] args)

{

System.Collections.ArrayList animalList = new System.Collections.ArrayList();

animalList.Add(new Dog());

animalList.Add(new Cat());

foreach(FourLeggedAnimal animal in animalList)

Console.WriteLine(animal.Describe());

Console.ReadKey();

}

}

abstract class FourLeggedAnimal

{

public abstract string Describe();

}

class Dog : FourLeggedAnimal

{

public override string Describe()

{

return “I’m a dog!”;

}

}

class Cat : FourLeggedAnimal

{

public override string Describe()

{

return “I’m a cat!”;

}

}

}

همانطور که می بینید ، ما یک ArrayList ایجاد می کنیم تا حیوانات ما را در خود جای دهد. سپس یک Dog (سگ) جدید و یک Cat (گربه) جدید را نمونه سازی می کنیم و آنها را به لیست اضافه می کنیم. آنها به ترتیب به عنوان یک سگ و یک گربه نمونه سازی می شوند، اما آنها همچنین از نوع FourLeggedAnimal نیز هستند و از آنجا که کامپایلر می داند که زیر کلاس های آن کلاس، حاوی روش ()Describe است ، شما در واقع بدون دانستن دقیق نوع حیوان، مجاز به فراخوانی آن متد هستید. . بنابراین با ارجاع نقش ها به FourLeggedAnimal ، کاری که در حلقه foreach انجام می دهیم، می توانیم به اعضای زیر کلاس ها دسترسی پیدا می کنیم. این امر می تواند در بسیاری از حالات بسیار مفید باشد.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش کلاس های انتزاعی بیشتر (بخش ۲)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید