说我有下面的代码:接口是否有任何方式可以导致不同的行为?
class Foo: IFoo {
public string fooProp { get; set; }
}
interface IFoo {
string fooProp {get; set; }
}
是它在所有可能的那里是之间不同的行为:
Foo x = new Foo();
someMethod(x);
和:
IFoo x = new Foo();
someMethod(x);
?
鉴于你上面显示的例子,没有。假设'someMethod'的签名需要一个'IFoo' –
接口不应该可以,no。 (与抽象/虚拟类/成员以及其他这样的继承概念相对)。你注意到行为表明它可能有所不同吗?或者这主要是一种闲置的好奇心? – David
嗯,我看到的问题更复杂,但我认为唯一的区别是它是由类或接口声明的,它的行为有所不同。 – JoelFan