我可以在C#中为一个班级派生一个孙子吗?

时间:2011-10-20 06:09:22

标签: c# .net inheritance

我想知道,C#是否支持孙子类。我想做下一个:

class Base
{
}

class DerivedFromBase : Base
{
}

class Grandchild : DerivedFromBase //I recieve an error in this class
{
}

在Java中,我可能会这样做,但C#在Grandchild类中生成错误。它只支持一个派生类吗?

4 个答案:

答案 0 :(得分:2)

不,请发布您的错误。另请注意,您的基础已来自Object,因此DerivedFromBase是孙子。

答案 1 :(得分:0)

C#支持(实际上)无限级别的派生。如果您收到错误,则由其他原因引起。

答案 2 :(得分:0)

它只支持一个派生类,但该类也可以是派生类。就像在Java中一样。你的问题在别处。

准备一个问题,用最少的代码重现您的情况,并将其与编译器输出一起发布。

答案 3 :(得分:0)

C#允许这样,所以应该没有错误。

我复制了你向我们展示的内容,添加了一些代码,并且它有效。所以它必须是导致错误的其他因素。

点击此处,这有效:

using System;

public class Test
{
  public static void Main()
  {
      Grandchild g = new Grandchild();
  }
}

class Base
{
    public int i=10;
}

class DerivedFromBase : Base
{
    public DerivedFromBase()
    {
      Console.WriteLine(i);
    }
}

class Grandchild : DerivedFromBase 
{
   public Grandchild()
   {
      Console.WriteLine(i);
   }
}