我在C#
中有一个有两个构造函数的类
public class GObject {
public GObject(){
// The default constructor
}
public GObject(int xPos, int yPos){
// Second constructor
}
}
这样写一个子类Block
是否有效?
public class Block : GObject {
// Sub class methods go here, no special constructor
}
使用2 nd 构造函数实例化Block
?
Block myBlock = new Block(10, 15);
答案 0 :(得分:11)
由于您没有在Block
上定义两个参数构造函数,因此您无法编写最后一行 - 它将无法编译。
您可以在Block
上使用链式构造函数:
public Block(int xPos, int yPos) : base(xPos, yPos)
{}
其中,案例:
Block myBlock = new Block(10, 15);
工作得很好。
答案 1 :(得分:2)
默认情况下,如果您没有显式编写构造函数;编译器创建一个没有参数的默认构造函数。
在您的情况下,由于Block
没有定义任何构造函数,因此只创建无参数构造函数。因此,您无法使用两个参数创建Block
对象。