ببین احتمالا با مفهوم مفهوم abstraction آشنایی داری.وقتی ما از abstract استفاده میکنیم میتونیم از 0 تا 100 درصد مفهوم abstraction ر. پیاده سازی کنیم.
حالا وقتی از intrface استفاده میکنیم باید بصورت 100درصد مفهوم abstraction رو پیاده سازی کنیم.
کلاس abstract میتونه interface رو داخل خودش پیاده سازی کنه ولی برعکسش نه و ... خیلی تفاوت های دیگه
مزیت abstract اینه که داخل بدنه ی خودش میتونه چندین متد abstract و غیر abstract داشته باشه.
کلاس abstract میتونه متغیرهای final، غیر final و قابل ویرایش، static و غیر static در بدنه خودش داشته باشه اما Interface فقط متغیرهای static و final .
و اما سوال تو:
ببین اینا تفاوت هایی هستش که وجود داره و اگه قرار نیست اینترفیسی پیاده سازی بشه یا متغیر غیر static و غیر final وچود نداشته باشه میتونی از اینترفیس استفاده کنی و هیچ تفاوتی نداره(کما اینکه مبحث ارث بریشون هم متفاوته یکمی)