- interface IFlyable
- {
- void Fly();
- }
- class FeiQin : IFlyable
- {
- public void Fly()
- {
- Console.WriteLine("飞禽都会飞!");
- }
- void IFlyable.Fly()
- {
- Console.WriteLine("。。。。会飞!");
- }
- }
- -------------------→FeiQin类继承了2个接口,IFlyable1,IFlyable2,
- interface IFlyable1
- {
- void Fly();
- }
- interface IFlyable2
- {
- void Fly();
- }
- class FeiQin:IFlyable1,IFlyable2
- {
- public void Fly()
- {
- Console.WriteLine("飞禽都会飞!");
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- FeiQin feiQin = new FeiQin();
- feiQin.Fly();
- Console.ReadKey();
- }
- }
- 你认为FeiQin类中调用的那个接口的Fly()?
- 继承接口,编译器,只认FeiQin类中是否实现了接口中的Fly();
- 不管子类中有几个Fly()方法
- --------------------------------------------→↓
- 首先,我们定义接口的时候,不会有2个相同意义的接口
- → → →→鸟类都有翅膀,并不代表有翅膀就能长时间飞行,
- 我们将IFlyable1接口中的Fly(),是长时间的飞行
- IFlyable2接口中的Fly(),是短时间的飞行
- 所以,Fly()有了2个分支
- class Bird:IFlyable1,IFlyable2
- {
- public void Fly() //默认的继承自IFlyable1,,,,,,,,,
- {
- Console.WriteLine("燕子能长时间飞行!");
- }
-
- public void IFlyable2.Fly() //显示实现IFlyable2的Fly();
- {
- Console.WriteLine("鸭子能短时间飞行!");
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Bird b = new Bird();
- b.Fly(); //长时间飞行
- b.IFlyable.Fly();//短时间飞行
- Console.ReadKey();
- }
- }
|