PDA

View Full Version : آموزشی : Abstract Methods



m-khorsandi
یک شنبه 07 فروردین 1384, 13:15 عصر
درود

Abstract :
1- دستوری ست که جلوی یک متد مینویسیم و باعث میشه که فقط در کلاس وارث بتونیم Body متد رو تعریف کنیم.

2- از دستور Abstract موقعی استفاده میکنیم که متد رو به صورت Virtual تعریف کرده باشیم.

دوستان اگه اطلاعات بیشتری دارند لطف کنند تاپیک رو تکمیل کنند و یه سئوال هم دارم:
با فرض اینکه ما یک کلاس پایه داریم و یک متد رو به صورت Abstract تعریف کردیم و یک کلاس وارث هم نوشتیم که Body متد در اون نوشته شده. حالا میخوام بدونم تعریف متد به این شکل به چه دردی میخوره؟ خوب من به جای اینکه بیام Header متد رو در کلاس پایه تعریف کنم یه دفعه در کلاس وارث هم Header و هم Body رو تعریف میکنم.

سپاس

hr110
یک شنبه 07 فروردین 1384, 13:59 عصر
استفاده از abstract در موارد زیر میتواند مورد استفاده قرار گیرد:
1- شما در تیمی برنامه مینویسید که قرار نیست پیاده سازی متدها و کلاسها با شما باشد، بنابراین متدها را انتزاعی تعریف کرده و مابقی کار را به دوستان واگذار میکنید.
2- اگر بخواهید در پروژه کلاسهای متعددی داشته باشید که برخی از متدهای آن در تمامی آنها اجباراً وجود داشته باشند و شما در حین تولید کلاسهای جدید برای اطمینان از عدم فراموشی و ... متدها را انتزاعی تعریف میکنید. این کار باعث میشود که در هنگام تولید کلاسهای جدید اجباراً متدهای کلاس پدر فراموش نشود.
3- استفاده از abstract در حالت دوم بهتر است با استفاده از Interfceها پیاده سازی شود.