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