کلاسهای انتزاعی

آموزش کلاس های انتزاعی (Abstract) در سی شارپ

اساطیر زبان

کلاسهای انتزاعی، که توسط کلیدواژه abstract (انتزاعی) در تعریف کلاس مشخص شده اند، معمولاً برای تعریف کلاس پایه در سلسله مراتب استفاده می شوند. آنچه در مورد آنها به طور خاص وجود دارد؛ آن است که شما نمیتوانید نمونه ای از آنها ایجاد کنید – اگر سعی کنید، کامپایلر خطا می دهد. درعوض ، شما باید آنها را طبق آنچه در فصل توارث آموزش داده شده است، طبقه بندی کنید و نمونه ای از زیر کلاس خود ایجاد کنید. بنابراین چه زمانی به کلاس انتزاعی احتیاج دارید؟ این موضوع در واقع به آنچه می خواهید انجام دهید؛ بستگی دارد.

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

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

در این مثال، یک کلاس پایه برای حیواناتی که پا دارند؛ ایجاد می کنیم و سپس کلاس Dog را تعریف می کنیم؛ که از آن به ارث می رسد. مشابه زیر داریم:

namespace AbstractClasses

{

class Program

{

static void Main(string[] args)

{

Dog dog = new Dog();

Console.WriteLine(dog.Describe());

Console.ReadKey();

}

}

abstract class FourLeggedAnimal

{

public virtual string Describe()

{

return “Not much is known about this four legged animal!”;

}

}

class Dog : FourLeggedAnimal

{

}

}

اگر این مثال را با مثال فصل توارث مقایسه کنیم؛ تفاوت زیادی مشاهده نمی شود. در واقع کلیدواژه abstract که جلوی تعریف FourLeggedAnimal آمده است؛ بزرگترین تفاوت موجود است. همان طور که مشاهده می شود، یک مثال جدید از کلاس Dog ایجاد می کنیم و سپس متد ()Describe از کلاس FourLeggedAnimal به ارث می رسد. اکنون سعی کنید نمونه ای از کلاس FourLeggedAnimal را ایجاد کنید:

FourLeggedAnimal someAnimal = new FourLeggedAnimal();

با این کد نویسی به خطای کامپایلر زیر می رسید:

Cannot create an instance of the abstract class or interface ‘AbstractClasses.FourLeggedAnimal’

(نمی توان نمونه ای از کلاس انتزاعی یا رابط “AbstractClasses.FourLeggedAnimal” ایجاد کرد)

اکنون همان طور که مشاهده می کنید؛ ما متد ()Describe را به ارث رسانده ایم؛ اما به این شکل فعلی، برای کلاسDog خیلی کاربردی نیست. بیایید آن را override کنیم:

class Dog : FourLeggedAnimal

{

public override string Describe()

{

return “This four legged animal is a Dog!”;

}

}

در این مورد، ما یک override کامل انجام می دهیم؛ اما در برخی موارد، ممکن است بخواهید از رفتار کلاس پایه علاوه بر عملکردهای جدید استفاده کنید. این امر را می توان با استفاده از کلید واژه base انجام داد؛ که به کلاسی اشاره دارد که توارث از آن انجام می شود:

abstract class FourLeggedAnimal

{

public virtual string Describe()

{

return “This animal has four legs.”;

}

}

class Dog : FourLeggedAnimal

{

public override string Describe()

{

string result = base.Describe();

result += ” In fact, it’s a dog!”;

return result;

}

}

اکنون واضح است که می توانید دیگر زیرکلاس های کلاس FourLeggedAnimal را ایجاد کنید- شاید یک گربه؛ یا یک شیر. در فصل بعدی؛ مثال پیچیده تری را انجام می دهیم و متدهای انتزاعی را نیز معرفی می کنیم.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست