我正在尝试理解一个项目中的一个类,并且对于Interface有点困惑。 根据我的理解,接口是一个特定类将遵守的“契约”,因此它应始终为指定的方法,属性等提供实现。
那么我怎么可能将它作为一个对象实现呢?例如
private IMyInterfaceName _interfaceObject;
有人可以解释一下作为对象的接口的用途以及如何使用它?
答案 0 :(得分:2)
_interfaceObject
能够保存对实现接口的类实例的引用:
public class MyClass : IMyInterfaceName {}
...
_interfaceObject = new MyClass();
答案 1 :(得分:0)
这是一个包含两个实现的合同:
interface ICalculator
{
//this contract makes it possible to add to given numbers a and b
int Add(int a, int b);
}
class SmartCalculator : ICalculator
{
// a concise way to add two numbers
public int Add(int a, int b)
{
return a+b;
}
}
class DumbCalculator : ICalculator
{
//A not that beautiful way to add to numbers
public int Add(int a, int b)
{
int result = a;
for(var i=1;i<=b;i++)
{
result+=1;
}
return result;
}
}
现在你要问的课程
class MyMainClass
{
private readonly ICalculator calcuator;
public MyClass()
{
//If I'm smart i'll do the following
calculator = new SmartCalculator();
//If I'm not, well..
calculator = new DumbCalculator();
}
}