簡體   English   中英

我可以在C#中為一個班級派生一個孫子嗎?

[英]Can I derive a grandchild for a class in C#?

我想知道,C#是否支持孫子類。 我想做下一個:

class Base
{
}

class DerivedFromBase : Base
{
}

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

在Java中,我可能會這樣做,但C#在Grandchild類中生成錯誤。 它只支持一個派生類嗎?

不,請發布您的錯誤。 另請注意,您的基礎已經從Object派生,因此DerivedFromBase是一個孫子。

C#支持(實際上)無限級別的派生。 如果您收到錯誤,則由其他原因引起。

它只支持一個派生類,但該類也可以是派生類。 就像在Java中一樣。 你的問題在別處。

使用最少的代碼准備一個可以重現您的情況的問題,並將其與編譯器輸出一起發布。

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);
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM