csharp中接口可以被多个类实现吗?
答案:1 悬赏:70 手机版
解决时间 2021-03-28 11:39
- 提问者网友:棒棒糖
- 2021-03-27 10:59
csharp中接口可以被多个类实现吗?
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-03-27 11:58
完全可以,接口就是拿来给类实现的
比如定义一个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
比如定义一个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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯