同学们好, 之前咱们讲过C#中接口的使用 今天深入一下,讲讲接口的显示实现。 如果一个类,实现某个接口。 在VS给的提示中可以看到,有两种实现方式。如下图 一个是实现接口XXX,一个是显示实现接口XXX。 那么这两个有什么区别,以及什么时候用显示实现呢? 下面我们讲一讲。 在VS中添加控制台应用程序, 并添加Human类,类中添加Eat方法。 如下图: 添加IKiller接口, 接口中添加Kill方法。 如下图: Human类实现IKiller接口, 先用第一种形式实现。 如下图: 下面重点来了!!! 在Main函数中,定义Human类实例Jack。 调用Jack的方法,可以看到Jack有Kill这个方法。如下图: 也就是说,我定义的Jack是Human类, 但是每个人都可以看出来Jack是个Killer。 这样显然不合理。 Jack平时不想展示自己杀手的一面,只想做个普通人。 当接收到暗杀任务时,才切换到杀手模式。 那么有办法实现上面的要求吗? 聪明的同学估计猜到了,该轮到显示实现接口出场了。 修改IKiller接口的实现方式, 改为显示实现,如下图: 这样再调用Human的Jack, 就看不到Kill方法了。如下图: 如果Jack接收到了暗杀任务, 需要展现杀手的一面, 只需要把Jack的类型,改成IKiller即可。 如下图: 10:
按照惯例总结一下: 接口的显示调用方式,是C#为了更精准的表现现实世界而发明的。 类只有在接口的类型下,才会表现出接口的方法。 这样的方式更合理。