为什么我们不能从 derived 中调用 base class 的构造函数
Why we cannot call constructor of base class from derived
我需要理解为什么我们不能从派生调用基 class 的构造函数的概念。我有一些场景。
public class clsA
{
int i = 10;
public void CallA()
{
Console.WriteLine("Called by Class A");
}
}
public class clsB : clsA
{
int i = 20;
public void CallB()
{
Console.WriteLine("Called by Class B");
}
}
如果我喜欢的话
clsA _obja = new clsA();
然后基 class 的构造函数被调用,我们得到它的方法。
如果我喜欢的话
clsB _objb = new clsB();
然后还调用了基础 class 的构造函数,我们得到了基础 class 方法和派生的 class 方法。
如果我喜欢的话
clsA _objab = new clsB();
然后基 class 的构造函数被调用,我们得到它的方法。
但现在我的问题是为什么我们不能像
那样从派生class调用基class的构造函数
clsB _objb = new clsA();
请推荐我。我想要简单的答案。
这与构造函数调用无关。问题是您不能将父 class 的实例分配给子 class 的变量。 clsB
实例是 clsA
,但 clsA
对象不一定是 clsB
。
我需要理解为什么我们不能从派生调用基 class 的构造函数的概念。我有一些场景。
public class clsA
{
int i = 10;
public void CallA()
{
Console.WriteLine("Called by Class A");
}
}
public class clsB : clsA
{
int i = 20;
public void CallB()
{
Console.WriteLine("Called by Class B");
}
}
如果我喜欢的话
clsA _obja = new clsA();
然后基 class 的构造函数被调用,我们得到它的方法。
如果我喜欢的话
clsB _objb = new clsB();
然后还调用了基础 class 的构造函数,我们得到了基础 class 方法和派生的 class 方法。
如果我喜欢的话
clsA _objab = new clsB();
然后基 class 的构造函数被调用,我们得到它的方法。
但现在我的问题是为什么我们不能像
那样从派生class调用基class的构造函数clsB _objb = new clsA();
请推荐我。我想要简单的答案。
这与构造函数调用无关。问题是您不能将父 class 的实例分配给子 class 的变量。 clsB
实例是 clsA
,但 clsA
对象不一定是 clsB
。