1-
یک کلاس معمولی می تواند از یک کلاس Abstract
ارث بری کند، ولی همان کلاس می تواند از چندین Interface
ارث ببرد.
2-
یک Interface فقط می تواند اعلان متدها و خصوصیت ها را داشته باشد، اما یک کلاس Abstract علاوه بر آنها می توانید متدها و
خصوصیت هایی با کدهای کامل داشته باشد.
3-
عناصر موجود در کلاس Abstract می توانند مانند یک کلاس معمولی دارای
سطح دسترسی باشند ولی Interface
ها فاقد این امکان می باشند.
4-
وقتی شما متدی را به کلاس Abstract اضافه می کنید، به طور خودکار به
همه زیر کلاس ها اعمال می شود اما در Interface اگر متدی اضافه کنید، باید در تمام زیر کلاس ها، آن را اعمال کنید.
5-
کلاس Abstract مانند کلاس های معمولی می توانند
دارای فیلد و عناصر دیگری (مثل ثابت ها) باشند در حالی که Interface فاقد این امکان می باشد. همچنین کلاس
abstract می تواند شامل
سازنده باشد، اما اینترفیس نمی تواند.
6-
Abstract
یکی از انواع کلاس است ولی Interface کلاس نیست.
7-
اینترفیس تنها می تواند از اینترفیس ارث بری کند، اما کلاس abstract می تواند از اینتر فیس، کلاس Abstract یا سایر کلاس ها ارث بری کند.