...父类的构造函数 但是子类默认调用父类的构造函数,这两句话感觉好矛盾...
发布网友
发布时间:2024-10-23 23:56
我来回答
共1个回答
热心网友
时间:2024-10-27 15:19
通过一个程序来解释
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)所述。