C#接口的显示和隐式实现

时间:2020-12-28 21:21:34

早上骑车上班走到半路发现手机忘带了,这年代兜里没装一分现金,吃饭都要刷手机,上班时间无聊了不能玩手机更是大问题,所以果断掉头拿手机。取完手机刚出门看这天阴沉沉的貌似要下雨,没雨衣,骑车又不能打伞,上次就是上班路上被突如其来的大雨湿了身,不敢犹豫,买了早餐赶紧打包带走,骑上车一路狂奔到公司,刚到公司楼下,雨就哗哗的下大了,衣服没被淋湿却被汗水浸湿了,不过没被雨淋还是有点小庆幸。等到吃了早餐,汗水退去,那就巩固巩固基础知识吧,这次总结一下接口的显示实现和隐式实现,我就总是习惯把这两个方式搞混张冠李戴,不知道哪个叫“显示”哪个叫“隐式”,其实吧也没必要死记他们的名字,只要看到他们知道怎么用就可以了,也就是只要看到他们知道他们能干什么就可以了。最近总结的都是很基础的理论知识,这些往往会被程序员们忽略,但却是编程语言的精华,要建高楼根基不稳怎么行。话不多说贴上代码

   public class Program
    {
        static void Main(string[] args)
        {
            //显式显示调用方式
            ISpeakVoice man = new ManSpeak();
            man.SpeakVoice();

            //隐式显示调用方式
            DogSpeak dag = new DogSpeak();
            dag.SpeakVoice();

            ISpeakVoice ispeak = new DogSpeak();
            ispeak.SpeakVoice();


            Console.ReadLine();
        }
    }

   public interface ISpeakVoice  
   {
       void SpeakVoice();
   }

   public class ManSpeak : ISpeakVoice
   {
       public string Name = "人类";
       void ISpeakVoice.SpeakVoice()  //显示实现
       {
           Console.WriteLine(this.Name + "说话:哈哈哈!!!");
       }
   }

   public class DogSpeak : ISpeakVoice
   {
       public string Name = "小狗";
       public void SpeakVoice()  // 隐式实现
       {
           Console.WriteLine(this.Name +"说话:汪汪汪!!!");
       }
   }

运行结果截图

C#接口的显示和隐式实现