کلاسهای abstract با این اسم تعریف میشن:
میتونه توی کلاسهای دیگه ای به ارث برده بشه.
متدهایی که توی کلاس abstract نوشته میشن سه تا مدل میتونن باشن:
1-یا abstract method باشن،این نوع متد فقط امضاست و نمیتونه بدنه داشته باشه.در عوض حتما باید در کلاس فرزند بازنویسی بشه
2-یا virtual Method باشن، که بهشون میگن dynamic Polymorphism ، این متدها باید بدنه داشته باشند.خاصیت دیگه ای که دارند اینه که میتونن توی کلاس فرزند بازنویسی بشن(override).
3-یا اینکه متد ساده باشن.این نوع متدها در کلاس فرزند فقط میتونن صدا زده بشن.
اما abstract class ها به شکل زیر استفاده میشن:
چند نکته کلیدی و نتیجه گیری:
شما نمی تونید این نوع کلاسها رو new کنید
شما نمی تونید از abstract method ها در یک کلاس عادی استفاده کنید.
زمانی که در یک کلاس abstract قصد نوشتن متد بدون بدنه داریم حتما باید از abstract method استفاده کرد
اگر بخوایم بدنه داشته باشه و این اجازه رو بدیم که در کلاس فرزند بازنویسی بشه باید از Virtual method استفاده کنیم.
متدهایی که abstract یا virtual رو ندارن نمی تونن در کلاس فرزند بازنویسی بشن و فقط باید صدا زده بشن