CSDN-CSDN社区-.NET技术-.NET Framework

收藏 基类与接口混合继承的问题[问题点数:50]

楼主发表于:2008-04-15 14:56:43
class Program
    {
        static void Main(string[] args)
        {
            A b = new B();
            ((IC)b).M();
            b.M();
        }
    }

    interface IC
    {
        void M();
    }

    class A : IC
    {
        public virtual void M()
        {
            Console.WriteLine("In class A");
        }

        #region IC Members

        void IC.M()
        {
            Console.WriteLine("In class A(IC)");
        }

        #endregion
    }

    class B : A, IC
    {               
    }

输出什么?

如果Class b是:

    class B : A, IC
    {
        public override void M()
        {
            Console.WriteLine("In class B");
        }
    }

输出什么?

如果class B是:

    class B : A, IC
    {
        public new void M()
        {
            Console.WriteLine("In class B");
        }
    }

输出什么?

如果B是:

    class B : A, IC
    {
        public override void M()
        {
            Console.WriteLine("In class B");
        }

        #region IC Members

        void IC.M()
        {
            Console.WriteLine("In class B(IC)");
        }

        #endregion
    }

输出什么?

    class B : A, IC
    {
        public new void M()
        {
            Console.WriteLine("In class B");
        }

        #region IC Members

        void IC.M()
        {
            Console.WriteLine("In class B(IC)");
        }

        #endregion
    }

如果b是:

    class B : A, IC
    {
        void IC.M()
        {
            Console.WriteLine("In class B(IC)");
        }
    }

输出什么?

搞晕了...........................

如果B是:


回复次数:5
  • jzywh用户头像
  • jzywh
  • (江大鱼)
  • 等 级:
#1楼 得分:0回复于:2008-04-18 14:55:56
In class A(IC)
In class A

In class A(IC)
In class B

In class A(IC)
In class A

In class B(IC)
In class B

In class B(IC)
In class A

In class B(IC)
In class A


我也晕了, 其实是很好的题目, 不知我做的是不是对的
#2楼 得分:0回复于:2008-04-18 14:58:05
自己测试,自己理解
  • mqcan用户头像
  • mqcan
  • (Downer)
  • 等 级:
#3楼 得分:0回复于:2008-04-18 15:32:26
引用 2 楼 jinjazz 的回复:
自己测试,自己理解

精确.自己一个个测试.印象深刻!
#4楼 得分:0回复于:2008-04-20 04:14:59
很简单的问题,自己测试,更容易理解!
#5楼 得分:0回复于:2008-04-20 04:42:43
引用 4 楼 fei272647551 的回复:
很简单的问题,自己测试,更容易理解!


一定也不觉得简单,有点晕
相关问题
关于接口继承与覆盖基接口成员的讨论.NET技术/ C# - CSDN社区community ...
C#为什么要引入接口?
问个问题,做个线程的话,继承Thread和实现Runnable有什么区别呢 ...
ATL里,一个CLASS要从另一个ATL CLASS继承下来,同时又要实现一个自己 ...
升级了,散分!还有一个关于IUnknown的问题。 Delphi / 语言基础/算法 ...
我想写个TextBox和ComboBox共同继承的基类,请问能实现吗?如何实现 ...