多重接口问题
namespace ConsoleApplication2
{
interface Imy1
{
void disp1();
void disp2();
}
interface Imy2
{
void disp2();
}
class Program : Imy1,Imy2
{
public void disp1()
{
Console.WriteLine( "1 ");
}
public void disp2()
{
Console.WriteLine( "2 ");
}
static void Main(string[] args)
{
Program p = new Program();
p.disp1();
p.disp2();
}
}
}
类Program的disp2实现了那个接口?
------解决方案--------------------两个接口都是实现了的.
测试如下:
static void Main(string[] args)
{
Program p = new Program();
p.disp1();
p.disp2();
System.Console.WriteLine(p is Imy1);
System.Console.WriteLine(p is Imy2);
}
分别输出:
1
2
true
true
------解决方案--------------------接口只是一个声明,告诉系统你是怎么看待这个对象的。
------解决方案--------------------2个同时实现.
说白了接口只是限制你必须要有一个实现函数,在编译期间会帮你检查关系.但是真正使用实例的时候,只关心实例对象所拥有的方法,并不关心这个方法是从那里来的.