PDA

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



esafb52
چهارشنبه 12 تیر 1392, 15:22 عصر
با سلام من یک نکته ای رو راجب اینترفیس ها خوب متوجه نشدم و دوست دارم راهنمایی کنید که ما چطور در یک کلاس می تونیم از طریق اینترفیس از دو کلاس دیگر ارث ببریم فرض کنید ما کلاس هایی به شرح ذیل داشته باشیم چطور می تونیم تو کلاس سه از تمام موارد دو کلاس قبلی ارث ببریم ؟؟؟!!

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication21
{
class Program
{
class one
{
public void add()
{

}
public void insert()
{

}

}

class tow
{
public void ssss()
{


}
public void mmm()
{


}
}

class tree
{

}
static void Main(string[] args)
{
}
}
}

esafb52
چهارشنبه 12 تیر 1392, 15:39 عصر
البته من این رو پیدا کردم ولی دوست دارم به این روش کار نشه شما فکر کنین اگه در یک کلاس ما تعداد متدهایی زیادی داشتیم اگه قرار بشه همه اونها رو پیاده سازی کنیم پس بهتره خودشون رو بنویسیم تا اینکه از اینترفیس استفاده بشه الان اینجا دو نمونه از دوکلاس ساخته خوب اگر قرار ما نمونه بسازیم خوب میتونیم یه متد در کلاس آخر با هر نامب بنویسیم و بدون اینکه از این دو اینترفیس ارث ببریم متدهایی اون کلاس رو صدا بزنیم (در درون متد کلاس خودمون!!!!!!!!)


public interface IFirst { void FirstMethod(); }
public interface ISecond { void SecondMethod(); }

public class First : IFirst
{
public void FirstMethod() { Console.WriteLine("First"); }
}

public class Second : ISecond
{
public void SecondMethod() { Console.WriteLine("Second"); }
}

public class FirstAndSecond : IFirst, ISecond
{
First first = new First();
Second second = new Second();
public void FirstMethod() { first.FirstMethod(); }
public void SecondMethod() { second.SecondMethod(); }
}


یعنی اینجوری

public class FirstAndSecond //: IFirst, ISecond
{
First first = new First();
Second second = new Second();

public void www()
{
second.SecondMethod();
first.FirstMethod();
}
}

parvizwpf
چهارشنبه 12 تیر 1392, 20:51 عصر
ببینید وقتی بیشتر از یک ارث بری نیاز دارید مجبورید برید سراغ اینترفیس. ضمنا برید و مزایای اینترفیس رو بخونید. بهتر از اینها بهش فکر کنید . تفکرتون درباره اینترفیس جالب نیست.بالاخره که باید کلاسها رو و اجزاش رو پیاده سازی کنید . اینم هست ولی باز اینترفیس عالیه:

class ClassC { public ClassA A { get; set; } public ClassB B { get; set; } public C (ClassA a, ClassB b) { this.A = a; this.B = b; } }