最近一直在想着一个问题,关于接口的问题,
先上代码吧,看完代码再看我想要问的问题吧,在求高手解释
- public interface IAnimal
- {
- /// <summary>
- /// 叫
- /// </summary>
- void Yell();
- }
- public class Cat:IAnimal
- {
- public void Yell()
- {
- System.Diagnostics.Debug.WriteLine("喵");
- }
- public void Climb()
- {
- System.Diagnostics.Debug.WriteLine("我会爬树哦");
- }
- }
- public class Dog : IAnimal
- {
- public void Yell()
- {
- System.Diagnostics.Debug.WriteLine("汪");
- }
- }
- public class Test
- {
- public void DoSomething()
- {
- IAnimal cat = new Cat();
- cat.Yell();
- //cat.Climb(); //有时候,一个类里的一个方法,是它独有的,但希望在这里能用上,但接口上没这个方法
- }
- }
有一个IAnimal的接口,它只有一个方法,就是Yell();
猫与狗都实现了这个接口,但猫还会爬树
然后,在使用的时候,也就是Test这个类中,一定要做Yell这个动作。
后来,我发现这个Test类中,需要用到猫的Climb这个动作,这时候,如何是好?
不能在IAnimal接口上加方法,因为它不是这个接口的一个标准,但也有一些实现的类要做这个动作。
那如何是好呢?
求解,求赐教