完全可以,接口就是拿来给类实现的
比如定义一个IPrint接口里面有个Print()方法用于打印
接着定义类A,B,C分别实现IPrint接口,
如果你想A打印:
IPrint p = new A();
p.Print();
如果是B就new B(),C就new C(),这样p.Print()的时候就分别调用的是A,B,C他们各自的实现
你也可以直接
A a = new A();
a.Print();
效果一样的,但是实现接口分为两种:一种是直接实现,一种是显式实现
例如
class A : IPrint()
{
//直接实现
public void Print()
{
Console.WriteLine("123");
}
//显式实现
void IPrint.Print()
{
Console.WriteLine("321");
}
}
他们的区别在于
当用接口变量指向类的实例时,调用的是显式实现:
IPrint p = new A();
p.Print();
打印的是321
而当用类变量指向类的实例时,调用的是直接实现:
A a = new A();
a.Print();
打印的是123