A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迷你卡卡 中级黑马   /  2013-10-23 18:53  /  1141 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 迷你卡卡 于 2013-10-23 19:09 编辑

实现接口的时候,每次点开提示,都有实现接口和显式实现接口这两种方式,到底这两种方式有什么不同吗?分别在什么时候用何种方式呢?

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

4 个回复

倒序浏览
继承接口有两种实现方式:A:显示实现接口,B:(隐式)实现接口
interface IAnimal  {
          string Add(string name);
          string Delete(string name);    }


class Dog:IAnimal
    {
        #region IAnimal 成员  
        //隐式实现接口
        public string Add(string name)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public string Delete(string name)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion

        #region IAnimal 成员
        //显示实现接口
        string IAnimal.Add(string name)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        string IAnimal.Delete(string name)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion
    }

B:(隐式)实现接口
string name="aa";
            Dog dy = new Dog();//隐式
            dy.Add(name);
A:显示实现接口           
Dog d = new Dog();//显示实现接口后调用方法
                  //需要进行类型转换
            ((IAnimal)d).Add(name);

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1 版主啊,你能否把代码放到“代码”里.

查看全部评分

回复 使用道具 举报
茹化肖 发表于 2013-10-23 18:55
继承接口有两种实现方式:A:显示实现接口,B:(隐式)实现接口
interface IAnimal  {
          string Ad ...

额,多谢版主的回答,求加分啊,还差几分就25了,跪求版主手抖啊

点评

你找个版主也给我抖抖,抖上个十来分就行了。  发表于 2013-10-23 19:09
回复 使用道具 举报
之前一直没注意到还有显示和隐式实现的分别,楼上版主的代码已经写出了二者的区别,我就写一下刚刚知道的使用情况。
使用:
隐式接口的实现的确比显示要简单方便很多,但是有个显著的漏洞就是不能针对相同签名、名称的接口,假如在项目中遇到相同名称的接口,我们隐式实现接口,那。。。。
所以:显示接口实现,用于有可能出现接口重名的项目中,具体的,就各自YY吧.....

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马