【发布时间】:2010-02-08 10:47:51
【问题描述】:
我想知道接口的重要用途。我读了很多文章,但对接口的概念并不清楚。
我写了一个小程序。我已经定义了接口Itest.Class(Manager)已经实现了Interface.Another class(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();
}
}
【问题讨论】:
-
为什么不选择一个有多重继承的例子,例如经理支持
ITest和ISerializable和ICloneable等。那么你无疑会回答你自己的问题! -
所以接口基本上用来实现多个继承。没有其他用途。
-
这几乎是 stackoverflow.com/questions/2151959/using-interface-variables 的重复——那里的答案可能会回答您的问题(另请参阅已接受答案的 cmets)。
-
Shikha: "接口主要用于实现多重继承。没有其他用途。"错误的。接口用于实现多态性。它们绝对有多重继承以外的用途。例如,为确定性发布语义和
using支持实现IDisposable,为foreach和LINQ 支持实现IEnumerable,等等。 -
@itowlson - 但是类也这样做。具有所有抽象方法的抽象类在逻辑上与接口相同,除了一件事:单个类可以继承多个接口。 MI 是接口的唯一独特价值。