接口如何模拟多重继承

本文关键字:模拟 多重继承 何模拟 接口 | 更新日期: 2023-09-27 18:34:51

在寻找在C#中使用接口的原因时,我偶然发现了MSDN,它说:

例如,通过使用接口,您可以包含以下行为: 一个类中的多个源。该功能在 C# 中很重要 因为该语言不支持类的多重继承。 此外,如果要模拟,则必须使用接口 结构的继承,因为它们实际上不能从 另一个结构或类。

但是,接口如何模拟多重继承。如果我们继承了多个接口,我们仍然需要实现接口中提到的方法。

任何代码示例将不胜感激!

接口如何模拟多重继承

这使用委派起作用。您可以使用其他类编写类,并将("委托"(方法调用转发("委托"(到它们的实例:

public interface IFoo
{
    void Foo();
}
public interface IBar
{
    void Bar();
}
public class FooService : IFoo
{
    public void Foo()
    {
        Console.WriteLine("Foo");
    }
}
public class BarService : IBar
{
    public void Bar()
    {
        Console.WriteLine("Bar");
    }
}
public class FooBar : IFoo, IBar
{
    private readonly FooService fooService = new FooService();
    private readonly BarService barService = new BarService();
    public void Foo()
    {
        this.fooService.Foo();
    }
    public void Bar()
    {
        this.barService.Bar();
    }
}