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

ساخت وبلاگ

کلاس های (Abstract Class) در زبان C#، که با کلمه کلیدی abstract مشخص می شوند، کلاس های پایه و مادر در یک سلسله مراتب درختی کلاس ها می باشند. به عبارت دیگر این کلاس ها، کلاس مرجع بوده و بقیه کلاس ها به ترتیب از روی این کلاس به ارث می روند.

مسئله مهم در مورد کلاس های انتزاعی (Abstract) این است که شما نمی توانید یک نمونه یا شی از روی این کلاس ها بسازید، اگر این کار را انجام دهید، با خطای کامپایلر مواجه خواهید شد.

به جای عدم امکان ساخت شی از روی کلاس های انتزاعی، می توانید یک کلاس فرزند یا Subclass همانطور که در درس قبل آموزش دادیم، را از روی کلاس انتزاعی ساخته و سپس object های خود را از روی کلاس فرزند تولید کنید.
اما چه زمانی ممکن است به کلاس های پایه نیاز داشته باشید؟ به بیان ساده و شفاف، شما می توانید یک پروژه را کامل کدنویسی کنید بدون این که نیازی به کلاس پایه داشته باشید. اما این نوع کلاس ها برای یک منظور خاص، بسیار مناسب بوده و آن کاربرد در چهارچوب کاری یا Framework ها می باشد. به همین دلیل است که چهارچوب کاری .NET پر از کلاس های انتزاعی است.
در کد کلاس زیر، ما یک کلاس پایه به نام Four Legged Animal (چهارپایان) را ایجاد کرده و سپس کلاس دیگری به نام Dog تعریف نموده که از کلاس پایه به ارث می رود.

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

;() FourLeggedAnimal someAnimal = newFourLeggedAnimal

...
نویسنده : بازدید : 3 تاريخ : چهارشنبه 29 آذر 1396 ساعت: 4:19