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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fcyan86 中级黑马   /  2013-6-4 16:25  /  1283 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 fcyan86 于 2013-6-4 23:10 编辑

如果类实现两个接口,并且这两个接口包含相同签我的成员,那么类中实现成员将导致两个接口都使用该成员作为它的实现,
代码如下:
  1. interface Interface1
  2. {
  3.      void DoSomeThing();
  4. }
  5. interface Interface2
  6. {
  7.      void DoSomeThing();
  8. }
复制代码
  1. class MyClass:Interface1,Interface2
  2. {
  3.     void DoSomeThing();
  4. }
复制代码
两个接口实现不同的功能,两个接口方法名相同,在MyClass类中怎样将方法实现

评分

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

查看全部评分

9 个回复

正序浏览
恩恩,就是 显式 重写方法,还有一个重点,就是调用这个方法,你得得到索引才可以调用相应的方法
回复 使用道具 举报
胡章诚 发表于 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1

其实就是在方法前加上它的前缀?
回复 使用道具 举报
呵呵呵,我是以前见过,有印象,在C#图解教程上有,你可以去看看
回复 使用道具 举报
胡章诚 发表于 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1

这个正解,学习了
回复 使用道具 举报
胡章诚 发表于 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1

这个正解,学习了
回复 使用道具 举报
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1
{
    interface IIfc1                               //定义两个接口,他们的不同名,有相同的方法
    {
        void PrintOut(string s);
    }
    interface IIfc2
    {
        void PrintOut(string s);
    }

    class MyClass:IIfc1, IIfc2                        
    {
        void IIfc1.PrintOut(string s)           //在一个类里对两个接口的方法进行显示的重写   
        {
            Console.WriteLine("这是方法一" + s);     
        }
        void IIfc2.PrintOut(string s)
        {
            Console.WriteLine("这是方法二"+s);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            MyClass mc = new MyClass();         //实例化实现接口的那个类

            IIfc1 ifc1 = (IIfc1)mc;                 //通过强转的形式获取接口的索引,以便下面调用
            ifc1.PrintOut("huzhangcheng");          //通过得到的索引调用方法
            
            IIfc2 ifc2=(IIfc2)mc;
            ifc2.PrintOut("hahahhahah");
            Console.ReadKey();
        }
    }
}

评分

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

查看全部评分

回复 使用道具 举报
问题。。好像描述得不详细
回复 使用道具 举报
你可以在方法中传递不同的参数,从而实现方法的重载。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马