تفاوت abstract class با interface در Java
شنبه, ۳۱ مرداد ۱۳۹۴، ۱۱:۴۳ ق.ظ
با سلام
در این پست میخواهیم تفاوت های بین abstract class و interface در برنامه نویسی java بررسی کنیم . به طور کلی میتوان تفاوت های زیر را بر شمرد :
در این پست میخواهیم تفاوت های بین abstract class و interface در برنامه نویسی java بررسی کنیم . به طور کلی میتوان تفاوت های زیر را بر شمرد :
- interface ها به سادگی abstract ها هستند با این تفاوت که قابلیت اجرایی ندارند . اما abstract ها با توجه به متد پذیری قابلیت اجرایی دارند .
- در interface متغیرها به صورت نهایی تعریف میشوند اما abstract میتواند متغیر غیر تهایی داشته باشد .
- اعضای interface به طور پیش فرض عمومی هستند اما در abstract میتوانیم همه نوع از اعضا را داشته باشیم .
- interface را باید با کلمه implements و abstract را با extends ارث بری کنیم .
- یک interface تنها میتواند از یک interface دیگر ارث بری کنید اما یک abstract میتواند از یک کلاس abstract , یک کلاس معمولی یا چندین Interface ارث ببرد .
- interface کاملا یک معنی انتزاعی است و نمیتواند یک نمونه باشد . abstract نیز نمیتواند یک نمونه باشد اما با وجود یک تابع main میتواند فراخوانی شود .
حال با توجه به این تفاوت ها میتوان اظهار نظر کرد که هر گاه نیاز به وراثت جمعی داشتیم میتوانیم از Interface استفاده کنیم و همین طور در پروژه های بزرگ میتوانیم به عنوان چهارچوب یک کلاس از یک interface استفاده کنیم تا کلاس ا مجبور به نوشتن یک سری متد نماییم .
