可以在类中定义接口类型的方法吗?


abstract class someClass
{
public abstract IProduct SomeMethod();
}
public interface IProduct
{
string Operation();
}

我看到上面的代码在抽象类中定义了一个带有类型接口的方法,我想知道它的用法。有人能解释一下吗?

你在问这个:

abstract class SomeBaseClass
{
public abstract IProduct SomeMethod();
}

在这种情况下,IProduct可以表示实现接口的任何对象,并且方法SomeMethod()可以保证返回实现IProduct的某个类的对象。

在设计要求所有从SomeBaseClass派生的类都能够创建遵循IProduct接口的对象的情况下,这有许多用途。

c#中的接口就像保证特定行为和属性的契约。

这意味着无论实际实现如何,下面这样的代码都是有效的

SomeBaseClass f = ...
IProduct p = f.SomeMethod();
string op = p.Operation();

最新更新