最近一直在想着一個問題,關於接口的問題,
先上代碼吧,看完代碼再看我想要問的問題吧,在求高手解釋
- 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接口上加方法,因為它不是這個接口的一個標准,但也有一些實現的類要做這個動作。
那如何是好呢?
求解,求賜教