`
wsql
  • 浏览: 11788435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

C#构造函数在继承过程中的执行顺序

 
阅读更多

using System;
class Program
{
static void Main(string[] args)
{
childTest test = new childTest();
childTest test1 = new childTest(2);
childTest test2 = new childTest(2, 3);
Console.Read();
}
}
class baseTest
{
public baseTest()
{
Console.WriteLine("父类构造函数");
}
public baseTest(int i)
{
Console.WriteLine("父类有参数构造函数"+i);
}
}
class childTest:baseTest
{
public childTest()
{
Console.WriteLine("子类无参数构造函数");
}
public childTest(int i)
{
Console.WriteLine("子类有参数构造函数" + i);
}
public childTest(int a, int b):base(a)
{
Console.WriteLine("子类2个参数构造函数");
}
}

以上这段代码的运行结果是:

父类构造函数

子类无参数构造函数

父类构造函数

子类有参数构造函数2

父类有参数构造函数2

子类2个参数构造函数

从运行结果上就可以看到是先执行父类的构造函数,然后再运行子类的构造函数,并且如果不是显示的调用父类的构造函数的话,那就会调用无参数构造函数,反之则不会调用。

分享到:
评论

相关推荐

    C#类继承中构造函数的执行序列示例详解

    不知道大家在使用继承的过程中有木有遇到过调用构造函数时没有按照我们预期的那样执行呢?一般情况下,出现这样的问题往往是因为类继承结构中的某个基类没有被正确实例化,或者没有正确给基类构造函数提供信息,如果...

    学习C#静态函数及变量的一个精典例子与代码

    (1)用于对静态字段、只读字段等的初始化。 (2)添加static关键字,不能添加访问修饰符,因为静态构造...任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。 

    C#中子类调用父类的实现方法

    主要介绍了C#中子类调用父类的实现方法,通过实例逐步分析了类中初始化构造函数的执行顺序问题,有助于加深对C#面向对象程序设计的理解,需要的朋友可以参考下

    c#学习笔记.txt

    readonly声明一个字段,该字段只能赋值为该声明的一部分或者在同一类的构造函数中。 sealed指定类不能被继承。 static声明属于类型本身而不是属于特定对象的成员。 unsafe声明不安全的上下文。 virtual在派生类中...

    轻松学C#(图解版)

    7.3.4 继承中的构造函数 123 7.4 多态 124 7.5 抽象 128 7.5.1 抽象类、抽象方法的声明 129 7.5.2 抽象类的使用 129 7.5.3 抽象方法的使用 130 7.6 密封 132 7.6.1 密封类 132 7.6.2 密封方法 133 7.7 小结 134 7.8 ...

    C#科学计算讲义

    1.7.4 构造函数  1.7.5 析构函数与垃圾回收  1.8 运算符重载及索引器  1.8.1 运算符重载  1.8.2 索引器  1.8.3 面向对象思想在C#程序设计中的重要性  1.9 GUI编程  1.10 本章小结 第2章 线性方程组...

    C#微软培训资料

    10.3 构造函数和析构函数 .119 10.4 小 结 .122 第十一章 方 法 .124 11.1 方法的声明.124 11.2 方法中的参数.125 11.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 ...

    明日科技C#开发入门及项目实战

    实例058 使用构造函数 实例059 通过定义方法求一个数的平方 实例060 使用重载方法实现不同类型数据的计算 实例061 使用属性存储用户编号和姓名 实例062 使用索引器 实例063 通过类继承计算梯形面积 实例064 封装类...

    微软C#语言规范,C#语言教程中文版

    1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 事件 23 1.6.7.5 运算符 24 1.6.7.6 析构函数 25 1.7 结构 25 1.8 数组 26 1.9 接口 27 1.10 枚举 28 1.11 委托 29 1.12 特性 30 2. 词法结构 33 ...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    11.5.1 在C# 4.0中使用out类型参数修饰符允许协变性 331 11.5.2 在C# 4.0中使用in类型参数修饰符允许逆变性 332 11.5.3 数组对不安全协变性的支持 335 11.6 泛型的内部机制 335 11.6.1 基于值...

    c#学习笔记——学习心得

    C#中的各种名词: 常数:声明时用const修饰,是隐式静态类型 域:一个代表和某对象或类相关的变量的成员 字段:和属性相同,是用来存储对象的值,可以直接访问数据且不能对数据添加任何限制,但是属性不能且可以对...

    C#语言规范(2.0,3.0,4.0合集)

    1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 事件 23 1.6.7.5 运算符 24 1.6.7.6 析构函数 25 1.7 结构 25 1.8 数组 26 1.9 接口 27 1.10 枚举 28 1.11 委托 29 1.12 特性 30 2. 词法结构 33 ...

    C#教程(语言规范)

    4.1.2 默认构造函数... 72 4.1.3 结构类型... 73 4.1.4 简单类型... 73 4.1.5 整型... 74 4.1.6 浮点型. 75 4.1.7 decimal 类型 ... 76 4.1.8 bool 类型... 76 4.1.9 枚举类型... 76 4.1.10 可以为 null 的...

    C#编译原理 ZIP 压缩文件

    4.2.4 在LL(1)分析中构造语法树 124 4.3 First集合和Follow集合 125 4.3.1 First 集合 125 4.3.2 Follow 集合 130 4.3.3 构造LL(1)分析表 134 4.3.4 再向前:LL(k)分析程序 135 4.4 TINY语言的递归下降分析程序 136 ...

    C#语言参考C#语言参考

    10.10.3 构造函数执行 210 10.10.4 默认构造函数 212 10.10.5 私有构造函数 213 10.10.6 可选的构造函数参数 213 10.11 析构函数 213 10.12 静态构造函数 214 10.12.1 类加载和初始化 215 11. 结构 217 11.1 结构...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例058 使用构造函数 94 实例059 通过定义方法求一个数的平方 95 实例060 使用重载方法实现不同类型数据的计算 97 实例061 使用属性存储用户编号和姓名 99 实例062 使用索引器 101 实例063 通过类继承计算梯形面积 ...

Global site tag (gtag.js) - Google Analytics