using System.Collections.Generic;
using System.Linq;
using System.Text;
//要实现多个接口的相同名称的方法,必须在接口的实现部分注意以下两点。
//1.有相同的名称的方法在实现时,前面不能加上public等关键词。每个方法前必须冠以相应的接口名。
// 例如:
// void IFace1.Say();
// void IFace2.Say();
//2.对于不同名称的方法,前面必须冠以“public”标识符。
// 例如:
// public void Hello();
//以上两个规则缺一不可。
//创建派生类的实例时,如果调用了某个接口的实现,则必须将实例强制转换为相应接口类型。
// 例如:
// FacetoFace facetest = new FacetoFace();
// ((IFace1)facetest).Say();
// ((IFace2)facetest).Say();
namespace Interface
{
interface IFace1
{
void Say();
void Hello();
}
interface IFace2
{
void Say();
void Goodbye();
}
class FacetoFace:IFace1,IFace2
{
void IFace1.Say()
{
Console.WriteLine("这是IFace1的say方法");
}
public void Hello()
{
Console.WriteLine("这是IFace1的Hello方法");
}
void IFace2.Say()
{
Console.WriteLine("这是IFace2的say方法");
}
public void Goodbye()
{
Console.WriteLine("这是IFace2的Goodbye方法");
}
static void Main(string[] args)
{
FacetoFace facetest = new FacetoFace();
((IFace1)facetest).Say();
((IFace2)facetest).Say();
facetest.Hello();
facetest.Goodbye();
Console.ReadKey();
}
}
}