最近一直在想着一个问题,关于接口的问题,
先上代码吧,看完代码再看我想要问的问题吧,在求高手解释
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接口上加方法,因为它不是这个接口的一个标准,但也有一些实现的类要做这个动作。
那如何是好呢?
求解,求赐教