黑马程序员技术交流社区

标题: 接口的实现 [打印本页]

作者: 迷你卡卡    时间: 2013-10-23 18:53
标题: 接口的实现
本帖最后由 迷你卡卡 于 2013-10-23 19:09 编辑

实现接口的时候,每次点开提示,都有实现接口和显式实现接口这两种方式,到底这两种方式有什么不同吗?分别在什么时候用何种方式呢?
作者: 茹化肖    时间: 2013-10-23 18:55
继承接口有两种实现方式: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);
作者: 迷你卡卡    时间: 2013-10-23 19:07
茹化肖 发表于 2013-10-23 18:55
继承接口有两种实现方式:A:显示实现接口,B:(隐式)实现接口
interface IAnimal  {
          string Ad ...

额,多谢版主的回答,求加分啊,还差几分就25了,跪求版主手抖啊
作者: 黑色海    时间: 2013-10-23 19:20
之前一直没注意到还有显示和隐式实现的分别,楼上版主的代码已经写出了二者的区别,我就写一下刚刚知道的使用情况。
使用:
隐式接口的实现的确比显示要简单方便很多,但是有个显著的漏洞就是不能针对相同签名、名称的接口,假如在项目中遇到相同名称的接口,我们隐式实现接口,那。。。。
所以:显示接口实现,用于有可能出现接口重名的项目中,具体的,就各自YY吧.....




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2