A 本篇目尝试理解的问题:
- 1.在new一个子类的时候,基类及子类的构造函数实现先后顺序。
- 2.类继承的含义:隐式包含基类的类。
- 3.构造函数在继承时的base关键字。
B 对应的问题的答案为:
- 先执行基类的构造函数,后执行子类的构造函数。
- 隐式包含基类的类,即可以通过子类调用基类的函数得到基类的参数。
- base关键字可以通过子类执行构造函数的同时执行基类的构造函数修改基类参数。
以下为代码的探究以及得到结论的过程
“类继承其基类的成员。 继承是指隐式包含其基类的所有成员的类,实例和静态构造函数以及基类的终结器除外。”
先考察该定义中的隐式包含基类所有成员的类。
通过下面的代码段及代码结果来比较清楚地理解:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
public class B //Baseclass
{
private int i;
public B()
{
i = 0;
Console.WriteLine("Base Constructor")
Console.WriteLine(i);
}
public int getInt()
{
Console.WriteLine("Base i ");
return this.i;
}
}
}
public class D:B //Subclass
{
private int x;
public D()
{
x = 10;
Console.WriteLine("Sub Constructor");
Console.WriteLine(x)<