c# 中 子类不继承父类的构造函数 但是子类默认调用父类的构造函数,这两句话感觉好矛盾呀,请C神给
c#中子类不继承父类的构造函数但是子类默认调用父类的构造函数,这两句话感觉好矛盾呀,请C神给予详细解答,跪谢!!...
c# 中 子类不继承父类的构造函数 但是子类默认调用父类的构造函数,这两句话感觉好矛盾呀,请C神给予详细解答,跪谢!!
展开
1个回答
展开全部
通过一个程序来解释
using System;
namespace ConsoleApplication1
{
// 这个是父类
public class MyBase
{
public MyBase()
{
Console.WriteLine("MyBase构造函数");
}
}
// 这个是子类,继承了父类
public class MyClass : MyBase
{
public MyClass()
{
Console.WriteLine("MyClass构造函数");
}
}
class Program
{
static void Main(string[] args)
{
// 实例化一个子类
MyClass myc = new MyClass();
Console.ReadLine();
}
}
}
运行结果
从运行结果看出:
(1)实例化子类MyClass时,先调用了父类的构造函数,然后再调用子类的构造函数。这就是“子类默认调用父类的构造函数”。
(2)“子类不继承父类的构造函数”的含义是:子类的构造函数与父类的构造函数之间没有“重写”和“覆盖”关系;只有“调用”关系,也就是实例化子类时先调用父类的构造函数,再调用子类的构造函数,如图所示以及如(1)所述。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询