کلاس Abstract در #C
شناسه پست: 2211
بازدید: 736

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

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

چرا؟

مشکل اینجاست که حالا ما میتوانیم یک نمونه از این کلاس پایه که چیزی غیر از پیاده سازی مشترک متد (یا متدها) را در خود قرار نمیدهد ایجاد کنیم. این اصلا منطقی نیست. یک کلاس که فقط شامل پیاده سازی مشترک است فقط باید یک هدف داشته باشد و آن هم این است که از آن فقط ارث بری شود.

به این دلیل است که در این مقاله، ما میخواهیم در مورد کلاسهای abstract صحبت کنیم.

این مقاله، سرفصلی از دوره آموزشی زیر میباشد:

اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک سطح متوسطه #C کلیک کنید.

برای دانلود سورس، روی لینک سورس کلاسهای abstract در #C کلیک کنید.

ما این مقاله را به قسمتهای زیر تقسیم میکنیم:

ایجاد کلاسهای Abstract

برای ایجاد یک کلاس abstract، ما از کلمه abstract استفاده میکنیم. تنها هدف کلاس abstract این است که از آن ارث بری شود و نمیتواند نمونه سازی شود:

خطای نمونه سازی از کلاس abstract

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

برای پیاده سازی یک متد abstract در کلاسی که از یک کلاس abstract مشتق میشود باید از کلمه override استفاده کنیم:

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

خطای متد Abstract

کلاسهای Sealed

اگر ما بخواهیم مانع این شویم که از کلاس ما ارث بری شود، باید از کلمه sealed استفاده کنیم. اگر کسی بخواهد از کلاس sealed به عنوان یک کلاس پایه استفاده کند، کامپایلر یک خطا گزارش میدهد:

خطای کلاس Sealed

نتیجه گیری

در این مقاله، ما یاد گرفتیم که:

  • چطور یک کلاس abstract ایجاد کنیم
  • چطور اعضای abstract را استفاده کنیم و آنها را پیاده سازی کنیم
  • یک کلاس sealed چیست و هدفش چه چیزی است

در مقاله بعدی، ما در مورد Generic ها در #C صحبت میکنیم.

نویسنده

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