وقتی یک کلاس ابسترکت میشه چه اتفاقی میفته؟
وقتی یک کلاس ابسترکت میشه چه اتفاقی میفته؟
یک کلاس وقتی به صورت abstract تعریف بشه دیگه نمیشه ازش شی ساخت و تنها برای استفاده و مشتق در subclass استفاده میشه.
و توابعی هم که در درون اون به صورت abstract تعریف میشن ، تنها تعریف میشن و بدنه ندارند.ولی زمانی که که یک کلاس از کلاس abstract مشتق بشه اون توابع رو پیاده کنه
آخرین ویرایش به وسیله rubiks.kde : سه شنبه 26 آذر 1392 در 12:47 عصر
YES I AM Qt
Code Less
Create More
Deploy Everywhere
بله توی جاوا مفهوم هایی مثل ابسترک ، اینترفیس و ... برای پیاده سازی بهتر شی گرایی و Polymorphism مورد استفاده قرار میگیرن.
حالا هرکدوم میتونه به جای خود در طراحی برنامه مفید واقع بشه
YES I AM Qt
Code Less
Create More
Deploy Everywhere
با احترام.
باید توجه داشت که تنها متدهایی از کلاس abstract الزام به پیاده سازی دارن که صریحا کلمه abstract در تعریف اون متد ذکر شده باشه.
در واقعه همین متد ها هم الزامی به پیاده سازی ندارن. یعنی میشه در subclass هم به صورت abstract ذکر بشن. البته به شرطی که subclass هم به صورت abstract تعریف شده باشه.
در ضمن کلاس abstract میتونه متد های ساده یا غیر abstract هم داشته باشه. همونطور که میدونید متد های غیر abstract باید بدنه داشته باشن و نیازی به پیاده سازی ندارن.
پس کلاس abstract هم میتونه متد هایی داشته باشه که باید پیاده سازی بشن هم متد هایی داشته باشه که لازم نباشه پیاده سازی بشن.
کلمه کلیدی Abstract برای کلاس برای جلوگیری از نمونه سازی هستش و فقط موقعی می شه ازش استفاده کرد که ازش ارث ببریم.
این فرمایش شما غلط می باشد که کلاس Abstract توابعش بدنه ندارد !
کلاس های Interface توابعش بدنه ندارد و فقط تعریف می شود برای الزام به تعریف توابع موجود در کلاس Interface در کلاسی که Implement می کنیم از کلاس Interface.
به درد برنامه نویسی شی گرا و طراجی الگو.
برنامه نویسی که به صورت فله ای برنامه بنویسه, برنامه نویس نیست...!
و این تکنیک ها به جاوا ربطی ندارد و در همه زبان های برنامه نویسی سطح بالا مثل C#, PHP, ... مطرح هستش.
نوشتن برنامه های بزرگ و حرفه ای حساب و کتاب داره و بدون این گونه تکنیک ها نه اینکه طراحی نمی شود ولی به سختی طراحی می شود که در آینده هم به مشکل برخورد خواهد کرد بنا به دلایلی!
نه دوست عزیز توی کلاس های abstract ، توابعی که abstract تعریف میشن نیاز به پیاده سازی ندارن.این فرمایش شما غلط می باشد که کلاس Abstract توابعش بدنه ندارد !
YES I AM Qt
Code Less
Create More
Deploy Everywhere