黑马程序员技术交流社区

标题: 关于接口 [打印本页]

作者: fcyan86    时间: 2013-6-4 16:25
标题: 关于接口
本帖最后由 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类中怎样将方法实现
作者: 李奔    时间: 2013-6-4 17:13
你可以在方法中传递不同的参数,从而实现方法的重载。
作者: 一直在努力    时间: 2013-6-4 17:16
问题。。好像描述得不详细
作者: 胡章诚    时间: 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

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();
        }
    }
}
作者: fcyan86    时间: 2013-6-4 23:09
胡章诚 发表于 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1

这个正解,学习了
作者: fcyan86    时间: 2013-6-4 23:09
胡章诚 发表于 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1

这个正解,学习了
作者: 胡章诚    时间: 2013-6-5 07:40
呵呵呵,我是以前见过,有印象,在C#图解教程上有,你可以去看看
作者: 关关雎鸠    时间: 2013-6-5 09:54
胡章诚 发表于 2013-6-4 19:32
代码有点长,耐心看,其中的通过强转获取接口索引的知识有些生疏

namespace ConsoleApplication1

其实就是在方法前加上它的前缀?
作者: 胡章诚    时间: 2013-6-5 11:39
恩恩,就是 显式 重写方法,还有一个重点,就是调用这个方法,你得得到索引才可以调用相应的方法




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