PDA

View Full Version : کلاس Abstract و Interface



haamidd
سه شنبه 14 مهر 1394, 18:30 عصر
من برای درک و فهمیدن موارد کاربرد این دو مورد مقداری مطالعه کردم و لطفا به سوال من پاسخ بدین.

سوالم در مورد موارد کاربرد هست!
زمان هایی که مثلا ما در مجموع 5 متد داریم و رفتار های هیچکدام از آنها را در کلاس های دیگه نمیدانیم چی هست باید از Interface استفاده کنیم تا رفتار ها دقیقا در کلاس های مجزا implement شوند و زمانی که مثلا میدانیم که چند تا از متد های ما در چند تا از کلاس ها یکسان هست باید از Abstract Class استفاده کنیم که به غیر از متد های یکسان، بقیشو در هر کلاس implement کنیم

درسته ؟

elec60
سه شنبه 14 مهر 1394, 22:57 عصر
من برای درک و فهمیدن موارد کاربرد این دو مورد مقداری مطالعه کردم و لطفا به سوال من پاسخ بدین.

سوالم در مورد موارد کاربرد هست!
زمان هایی که مثلا ما در مجموع 5 متد داریم و رفتار های هیچکدام از آنها را در کلاس های دیگه نمیدانیم چی هست باید از Interface استفاده کنیم تا رفتار ها دقیقا در کلاس های مجزا implement شوند و زمانی که مثلا میدانیم که چند تا از متد های ما در چند تا از کلاس ها یکسان هست باید از Abstract Class استفاده کنیم که به غیر از متد های یکسان، بقیشو در هر کلاس implement کنیم

درسته ؟


درسته و اينم توضيحات جامع تر و كامتر كه از StackOverflow برداشتم:




[*=left]interfaces can have no state or implementation
[*=left]a class that implements an interface must provide an implementation of all the methods of that interface
[*=left]abstract classes may contain state (data members) and/or implementation (methods)
[*=left]abstract classes can be inherited without implementing the abstract methods (though such a derived class is abstract itself)
[*=left]interfaces may be multiple-inherited, abstract classes may not (this is probably the key concrete reason for interfaces to exist separately from abtract classes - they permit an implementation of multiple inheritance that removes many of the problems of general MI).

SabaSabouhi
چهارشنبه 15 مهر 1394, 07:54 صبح
من برای درک و فهمیدن موارد کاربرد این دو مورد مقداری مطالعه کردم و لطفا به سوال من پاسخ بدین.

سوالم در مورد موارد کاربرد هست!
زمان هایی که مثلا ما در مجموع 5 متد داریم و رفتار های هیچکدام از آنها را در کلاس های دیگه نمیدانیم چی هست باید از Interface استفاده کنیم تا رفتار ها دقیقا در کلاس های مجزا implement شوند و زمانی که مثلا میدانیم که چند تا از متد های ما در چند تا از کلاس ها یکسان هست باید از Abstract Class استفاده کنیم که به غیر از متد های یکسان، بقیشو در هر کلاس implement کنیم

درسته ؟

سلام
دقیقاً تو همین زمان یک تاپیک دیگه با همین موضوع در جریانه، چرا از همون تاپیک استفاده نمی‌کنی تا پاسخ پرسش‌ها رو دریافت کنی؟
مطالب مفیدی هم اونجا رد و بدل شده.

صبا صبوحی

haamidd
چهارشنبه 15 مهر 1394, 10:08 صبح
سلام
دقیقاً تو همین زمان یک تاپیک دیگه با همین موضوع در جریانه، چرا از همون تاپیک استفاده نمی‌کنی تا پاسخ پرسش‌ها رو دریافت کنی؟
مطالب مفیدی هم اونجا رد و بدل شده.

صبا صبوحی


اوه!!! درست میگین، من خودم اون تاپیک رو ایجاد کردم و جوابمم دریافت کردم و دیگه دنبالشو نگرفتم و از ادامه دار بودن این تاپیک بی خبر بودم! بعد اون موضوش تقریبا Abstract , Virtual بود! ولی الان به چیزی تبدیل شده که خیلی جذاب شده ظاهرا! مرسی