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

   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#接口的显示和隐式实现的更多相关文章

  1. interface Part3(实现:显示和隐式)

    1. 接口的实现实际上和类之间的继承是一样的,也是重写了接口中的方法,让其有了具体的实现内容. 2. 但需要注意的是,在类中实现一个接口时必须将接口中的所有成员都实现,否则该类必须声明为抽象类,并将接 ...

  2. Intent 显示意图 隐式意图

    //显式意图  :必须指定要激活的组件的完整包名和类名 (应用程序之间耦合在一起) // 一般激活自己应用的组件的时候 采用显示意图  //隐式意图: 只需要指定要动作和数据就可以 ( 好处应用程序之 ...

  3. c# .net 关于接口实现方式:隐式实现/显式实现!

    以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习.  通俗的来讲,“显示接口实现”就是使用接口名称作为方法 ...

  4. C# 转换符的重载 显示、隐式转换

    class Complex { //保存转换的值 Int32 v; public Complex(Int32 x) { v = x; } public Int32 ToInt32() { return ...

  5. Android中显示和隐式Intent的使用

    显示启动activity                                                                                         ...

  6. label标签的显示和隐式关联问题

    按钮的html <!-- 学校 --> <div class="layui-inline"> <label class="layui-for ...

  7. angularJS1笔记-(7)-控制器的合理使用(显示和隐式的依赖注入)

    AngularJS依赖注入 1.隐式注入:不需要开发人员干预,angularJS自动根据参数的名称识别和注入数据 app.controller("myCtrl".function( ...

  8. Android中Intent的显示和隐式使用

    Android应用程序中组件之间的通信都少不了Intent的使用,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件, ...

  9. 【Selenium】显示、隐式等待

    显示等待 WebDriverWait 超时抛出TimeOutException,默认500毫秒 public class WaitToReturnElement { /* * 设置超时时间为5秒,返回 ...

随机推荐

  1. 借助GitHub托管你的项目代码

    PS:话说自己注册了GitHub都很久了,却没有怎么去弄,现在系统学习一下,也把自己的学习经历总结下来share给大家,希望大家都能把GitHub用起来,把你的项目代码happy地托管起来! 一.基本 ...

  2. Google软件构建工具Bazel原理及使用方法介绍

    近期,Google开源了强大的自动化构建工具Bazel. 正好博主近期在使用china版的Bazel--腾讯自主开发的Blade,所以准备跟大家分享一下Google Bazel这个分布式构建系统的原理 ...

  3. C#非常重要基础之多态

    前几天看了一位同志的博客,写的是关于他自己去支付宝面试的经历.过程大体是这样的:问答的时候,前面部分,作者都应答如流,说起自己经验如何之丰富,最后面试官问了作者一个问题:请简述多态的概念和作用.结果这 ...

  4. DOM getElementsByClassName IE兼容方案

    平时写HTML时多用class来命名,为很少用id来命名,主要原因就是class使用起来比较灵活. 但是万恶的JS在操作DOM的时候对ie6+只提供了getElementById和getElement ...

  5. 解析大型.NET ERP系统 自动更新

    C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新.工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现. ...

  6. 【WCF】操作选择器

    在开始吹牛之前,先说说.net Core的事情. 你不能把.NET Core作为全新体系来学习,因为它也是.NET.关于.NET Core,老周并不打算写什么,因为你懂了.NET,就懂了.NET Co ...

  7. ES6之块级作用域

    一.前言 在ECMAScript6(以下简称ES6)之前,ECMAScript的作用域只有两种: 1.  全局作用域: 2.  函数作用域. 正是因为有这两种作用域,所以在JavaScript中出现一 ...

  8. sql无限递归查询

    --------------所有子集数据包括自己--------------------- CREATE PROCEDURE ALLSON @ID INT AS BEGIN WITH CTE AS ( ...

  9. 禁止页面后退JS(兼容各浏览器)

    <script src="${ctxPath}/media/lib/jquery.history.js"></script> <script> ...

  10. Java豆瓣电影爬虫——小爬虫成长记(附源码)

    以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候, ...