با کسب اجازه از اساتید.
من توی این بحث شرکت میکنم چون می خواهم اطلاعاتی رو که توی ذهنم دارم و رو بیان کنم ، تا اگه اشتباه هست و مشکلی داره دوستان اصلاح کنند و در نتیجه به اطلاعات صحیح برسم. مثل موضوعی که درباره Singleton بود و دوست بسیار عزیز و دانایم جناب ارژنگ من رو راهنمایی کردند.
یکی فرق بین Interface و Abstract Class اینهست که ، Abstract همینطور که از اسمش پیداست یک کلاس هست ولی Interface یک قانون هست که مشخص میکند که یک کلاس چطوری باید پیاده سازی شود. یک کلاس فقط از یک کلاس Abstract می تواند ارث بپذیرد ولی از n تا interface می تواند ارث ببرد.
در یک interface نمی توان متد را پیاده سازی کرد و یا حتی variables/constants را تعریف کنید ولی در Abstract می توانید.
فرق مهم یک Abstract Class با یک Class این است که شما نمی توانید از یک Abstract Class نمونه سازی کنید (Instance) .