继承在几个级别

问题描述:

我只是想确保我正在做并正确地考虑继承和构造函数,如果我有多个子类。我的课程看起来像这样,Shape是基类和其他派生类继承在几个级别

Shape<-----Shape2D<------Box 

此代码是否正确?它正在工作,但我只是想知道这是否是最好的方法?

public Shape(int inputA, int inputB) 
    { 
     valueA = inputA; 
     valueB = inputB; 
    } 

    public Shape2D(int inputA, int inputB) : base(inputA, inputB) 
    { 

    } 

    public Box(int inputA, int inputB) : base(inputA, inputB) 
    { 

    } 
+1

正如你可以在[这个答案](http://*.com/questions/12051/calling-base-constructor-in-c-sharp)中看到的,是的,它是__only__方法来调用一个基础构造函数 – Steve

是的,这对我来说似乎是正确的。

如果您不想在子类中执行任何特殊的初始化,可以将初始化任务委托给层次结构中的基类。在那里定义的成员变量,所以它可以处理任何需要的初始化。

如果你需要一些特殊的后代,那么你必须在那里处理特殊的初始化。但是,除非您需要完全相同的初始化,否则我认为这是建议的方式。

你在你的问题中想过这个吗?

没有什么,从你的代码示例跳出 - 该链接看起来不错,构建BoxvalueAvalueB预期将得到填充时。

不确定你的意思是“最好的方式” - 以这种方式链接构造是绝对好的。