接口的意义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),然后表示具体对象的类实现了哪个接口适合该类’属性 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |