معرفی
سلام، درود بر شما! من اطمینان دارم که شما کار خوبی می کنید.
مطابق با موضوع امروز، بیایید یک شیرجه عمیق انجام دهیم تا هدف کلاس Abstract در OOPS را دریابیم.
بیایید به نمونه قدیمی خود از اپل برگردیم.
اپل آیفون و آیپد تولید می کند. این 2 کلاس دارای ویژگی های مشترک زیادی هستند اما کاملاً قابل تمایز هستند. کامل! برای درک رفتار یک کلاس انتزاعی به چیزی شبیه به این نیاز داریم.
فرض کنید ما یک برنامه نویس نوب هستیم. به عنوان یک برنامه نویس noob، ما 2 کلاس، هر کدام برای iPhone و iPad ایجاد خواهیم کرد
اجازه دهید نگاهی به UML آنها بیندازیم:
![هدف از کلاس انتزاعی در برنامه نویسی شی گرا](http://pezhvak24.ir/dl/codenevis/firstcode/article/virtual-methods-in-c-sharp/Images/Copy%20Righted%20to%20Rikam%20E.g.%20Apple%20Ipad%20Iphone%20No%20Association.png)
اگر بخواهم این را در کد پیاده سازی کنم:
![هدف از کلاس انتزاعی در برنامه نویسی شی گرا](http://pezhvak24.ir/dl/codenevis/firstcode/article/virtual-methods-in-c-sharp/Images/IPhone%20Ipad.png)
در این 2 کلاس فقط 1 تفاوت وجود دارد.
iPad قیمت را به صورت زیر محاسبه می کند:
- Price = ManafacturingCost + CostToCompany + CostToResearch;
جایی که آیفون به صورت زیر عمل می کند:
- Price = ManafacturingCost + CostToCompany;
حالا آیا ما آنقدر خنگیم که 2 کلاس مختلف بسازیم در حالی که آنها چیزهای مشترک زیادی دارند؟
البته که نه.
ابتدا، اجازه دهید یک کلاس پایه ایجاد کنیم که توسط IPhone و iPad به ارث می رسد.
![هدف از کلاس انتزاعی در برنامه نویسی شی گرا](http://pezhvak24.ir/dl/codenevis/firstcode/article/virtual-methods-in-c-sharp/Images/Copy%20Righted%20to%20Rikam%20E.g.%20Apple%20Ipad%20Iphone.png)
دوم، همه قابلیتهای رایج را در کلاس پایه جابهجا کنید: چیزی که آیفون را از iPad متمایز میکند این است که آیفون سبک وزن و سختافزار آن است.
![هدف از کلاس انتزاعی در برنامه نویسی شی گرا](http://pezhvak24.ir/dl/codenevis/firstcode/article/virtual-methods-in-c-sharp/Images/Base-Derived.png)
حالا بیایید وارد عمل واقعی شویم: شروع به کدنویسی دوستان.