PDA

View Full Version : سوال: آیا یک کلاس میتواند همزمان از چند کلاس ارث بری کند



behzadamin12
دوشنبه 27 بهمن 1393, 09:15 صبح
سه کلاس تعریف کنیم a,b,c
که کلاس c همزمان از هردو ارث ببره
یعنی به هر دو کلاس دسترسی داشته باشه
لطف میکنید پاسخ میدید
با تشکر

SabaSabouhi
دوشنبه 27 بهمن 1393, 09:23 صبح
سه کلاس تعریف کنیم a,b,c
که کلاس c همزمان از هردو ارث ببره
یعنی به هر دو کلاس دسترسی داشته باشه
لطف میکنید پاسخ میدید
با تشکر

سلام
در زبان #C فقط از یک کلاس می‌تونی ارث ببری.
اما می‌توانی Interfaceهای متعدد رو implement کنی.

صبا صبوحی

behzadamin12
یک شنبه 03 اسفند 1393, 22:13 عصر
سلام میشه با همین interface ها یه نمونه مثال بنویسی
از سه کلاس دقیقا استفاده کنی
که با هم در ارتباط باشن

SabaSabouhi
دوشنبه 04 اسفند 1393, 08:44 صبح
سلام میشه با همین interface ها یه نمونه مثال بنویسی
از سه کلاس دقیقا استفاده کنی
که با هم در ارتباط باشن

سلام
interface کلاس نیست، فقط یه امضا هست.
هر interface مجموعه‌ای است از عنوان متدها و propertyها که باید توی کلاس شما پیاده‌سازی بشن.
هر کلاس می‌تونه از یه کلاس ارث ببره و چند تا interface رو implement کنه.
مورد استفاده هم جایی هست که شما چند تا کلاس متفاوت دارین که قراره یک کار مشترکی روشون انجام بشه.
مثل نوشتن Plugin.

صبا صبوحی

behzadamin12
پنج شنبه 07 اسفند 1393, 20:25 عصر
یه مثال کاربردی بزن

ali_md110
پنج شنبه 07 اسفند 1393, 21:44 عصر
یک مثال:
تعریف واسط


public interface IPayService>
{
ObservableCollection<Payment> PaymentList();
}

اینترفیس یک کلاسی هست که فقط متدها یا پراپرتیها درونش تعریف میشن و بدنه این متدها درون یک کلاس دیگه باید پیاده سازی کنیم




public class PayService:IPayService
{
public ObservableCollection<Payment> PaymentList()
{
Entity.Load();
return new ObservableCollection<Payment>(Entity.Local.));
}
}


فرض کنید میخایم از این متد پیاده سازی شده که یک لیست برای ما برکزدانده درون یک کلاس دیگه استفاده کنیم

یا باید درون سازنده کلاس جدید این اینترفیس را با کلاس وهله سازی کنیم



private readonly IPayService _PayService ;
public myViewmodel(IPayService payServic)

}
_PayService=_PayService
{


یا درون یک Property دیگه اینکار بکنبم




private IPayService _Service;
public IPayService MyService
{
get { return _Service= new PayService(); }
}