首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#三重继承的有关问题

2012-09-14 
C#三重继承的问题定义一个抽象类abstract class A1{protected abstract void method()}实现这个抽象类:cl

C#三重继承的问题
定义一个抽象类
abstract class A1
{
protected abstract void method();
}

实现这个抽象类:
class A2:A1
{
protected override void method()
{

}
}
再修改A2的方法:
class A3:A2
{
//这里已经不能再override或什么了
protected void method()
{
}
}

然后 A a2 = new A2();
A a3 = new A3();
a3.method()调用的是A2的method,没有调用自己的method.
请教问题出在什么地方?


[解决办法]

C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    abstract class A1    {        public abstract void method();    }    class A2 : A1    {        public override void method()        {            Console.WriteLine("a2");        }    }    class A3 : A2    {        //这里已经不能再override或什么了        public override void method()        {            Console.WriteLine("a3");        }    }    class Program    {        static void Main(string[] args)        {            A1 a2 = new A2();            a2.method();            A1 a3 = new A3();            a3.method();        }    }}
[解决办法]
怎么可能呢,只是vs没提示让你重载而已,因为父类已经实现了

热点排行