C# 您能在派生类中创建基类的构造函数吗?
这是否可能使基类的构造函数位于派生类中C# 您能在派生类中创建基类的构造函数吗?,c#,oop,inheritance,C#,Oop,Inheritance,这是否可能使基类的构造函数位于派生类中 public class A { // some stuff } public class B:A { public A() { } public B() { } } 不,你不能那样做。类的构造函数必须在自己的类中 但是您可以通过newa()调用B中A的构造函数。不,您不能这样做。类的构造函数必须在自己的类中 但是您可以通过newa()调用B中A的构造函数。不,您不能
public class A
{
// some stuff
}
public class B:A
{
public A()
{ }
public B() { }
}
不,你不能那样做。类的构造函数必须在自己的类中
但是您可以通过
newa()
调用B
中A
的构造函数。不,您不能这样做。类的构造函数必须在自己的类中
但是您可以通过
newa()
调用B
中A
的构造函数。不,您不能这样做,这是不明智的。您可以使用关键字在子类中调用基类构造函数
public class B : A
{
public B()
: base() //base class default constructor call.
{ }
}
不,你不能那样做,这是不明智的。您可以使用关键字在子类中调用基类构造函数
public class B : A
{
public B()
: base() //base class default constructor call.
{ }
}
您可以这样做:
public abstract class A
{
public A()
{
ExecuteConstructor();
}
protected abstract void ExecuteConstructor();
}
public class B : A
{
public B() { }
protected override void ExecuteConstructor()
{
// implementation of your constructor to run in A
}
}
您可以这样做:
public abstract class A
{
public A()
{
ExecuteConstructor();
}
protected abstract void ExecuteConstructor();
}
public class B : A
{
public B() { }
protected override void ExecuteConstructor()
{
// implementation of your constructor to run in A
}
}
出于好奇,这有什么用?这是一个无聊的好奇心,还是你在试图解决一个实际问题?这是什么魔法?这可能是一个面试问题。出于好奇,这有什么用?这是一个无聊的好奇心,还是你在试图解决一个实际问题?这是什么魔法?这可能是一个面试问题。