接口的意义C#

前端之家收集整理的这篇文章主要介绍了接口的意义C#前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道Interface的重要用途.我已经阅读了很多文章,但没有清楚界面的概念.

我写了一个小程序.我已经定义了Interface Itest.Class(Manager)实现了Interface.Another类(Employee)还没有实现接口.但是在类(Employee)的接口中定义了相同的方法(DoSomething()).我可以从类对象调用方法.那我为什么要去实现界面呢?我可以直接在类中实现该方法调用方法.为什么要在接口中执行方法,然后按类继承接口.我知道接口支持多重继承,但是在这个例子中我并没有使用多重继承.

感谢任何想法或投入.

public interface Itest
{
    void DoSomething();
}

public class Manager:Itest
{
    public void DoSomething()
    {
        Console.WriteLine("test....");
    }

}
class Employee
{
    public void DoSomething()
    {
        Console.WriteLine("test....");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Manager m = new Manager();
        m.DoSomething();
        Employee e = new Employee();
        e.DoSomething();
        Console.ReadLine();
    }
}

解决方法

接口允许您使用多重继承进行排序.在你的例子中,它允许你把Employee或者Manager的实例放在同一个变量中,然后在该变量上调用DoSomething,方法调用被调度到该变量当前引用的实例.例如:
public interface IEmployee {
    void DoSomething();
}
// assume Manager and Employee both implement IEmployee

IEmployee ie = new Manager();
ie.DoSomething();    // calls Manager.DoSomething()
ie = new Employee();
ie.DoSomething();    // calls Employee.DoSomething()

如果您没有使用接口,则必须执行以下操作:

object o;

// assign Manager or Employee (or something else!) to o

if (o is Manager)
    ((Manager)o).DoSomething();
else if (o is Employee)
    ((Employee)o).DoSomething();

接口定义了一个契约,只要一个实例实现了该接口,就不用担心它在运行时实际上是什么.您可以使用相同的类实现多个接口,然后在这些接口的所有变量中使用该类的实例.抽象类不能使用相同的类,因为类只能一次继承一个类.

现在我使用接口的一个例子是定义一个对象模型 – 我有各种属性的接口(IHasStorage,IHasPrivileges,IHasCheezburger),然后表示具体对象的类实现了哪个接口适合该类’属性

猜你在找的C#相关文章