假定没有为任何类定义任何显式的构造函数,这样编译器就会为所有的类提供默认的初始化构
造函数,在后台会进行许多操作,但编译器可以很好地解决类的层次结构中的所有问题,每个类中
的每个字段都会初始化为对应的默认值。但在添加了一个我们自己的构造函数后,就要通过派生类
的层次结构高效地控制构造过程,因此必须确保构造过程顺利进行,不要出现不能按照层次结构进
行构造的问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApplication3
{//抽象类是指设计为被继承的类,抽象类只能用作其它类的基类,且抽象类不能被实例化abstract class GenericCustomer{private string name;/// <summary>/// 构造函数/// </summary>/// <param name="name"></param>public GenericCustomer(string name){this.name = name;}}class NeverMore60Customer : GenericCustomer{private uint highCostMinutesUsed;private string referrerName;//使用base关键字指定应使用基类中的哪一个构造函数public NeverMore60Customer(string name, string referrerName): base(name){this.referrerName = referrerName;}//使用this关键字指定应使用当前类中的哪一个构造函数public NeverMore60Customer(string name): this(name, "<None>"){}}class MyClass{readonly int firstVar;readonly double secondVar;public string UserName;public int UserIdNumber;public void Print(){Console.WriteLine(firstVar);Console.WriteLine(secondVar);}//私有构造函数执行其它构造函数共用的初始化,该构造函数//只能让类中其它构造函数调用,而不能从类的外部调用private MyClass(){firstVar = 20;secondVar = 30.5;}public MyClass(string firstName): this(){UserName = firstName;UserIdNumber = -1;}public MyClass(int id): this(){UserName = "Anonymous";UserIdNumber = id;}public MyClass(string firstName, int userIdNumber): this(){UserName = firstName;UserIdNumber = userIdNumber;}}class Program{static void Main(string[] args){MyClass myClass = new MyClass("Jason", 1);//myClass.Print();Console.WriteLine(myClass.UserIdNumber);Console.WriteLine(myClass.UserName);}}
}

C# 派生类的构造函数相关推荐

  1. c++, 派生类的构造函数和析构函数 , [ 以及operator=不能被继承 or Not的探讨]

    说明:文章中关于operator=实现的示例,从语法上是对的,但逻辑和习惯上都是错误的. 参见另一篇专门探究operator=的文章:<c++,operator=>http://www.c ...

  2. C++中基类与派生类的构造函数和析构函数

    1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...

  3. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...

    派生类的构造函数[1] 默认情况 基类的构造函数不被继承; 派生类需要定义自己的构造函数. C++11规定 可用using语句继承基类构造函数. 但是只能初始化从基类继承的成员. 派生类新增成员可以通 ...

  4. 【C++ Primer 第15章】定义派生类拷贝构造函数、赋值运算符

    学习资料 • 派生类的赋值运算符/赋值构造函数也必须处理它的基类成员的赋值 • C++ 基类构造函数带参数的继承方式及派生类的初始化 定义拷贝构造函数 [注意]对派生类进行拷贝构造时,如果想让基类的成 ...

  5. C++基类和派生类的构造函数(二)

    基类构造函数调用规则 事实上,通过派生类创建对象时必须要调用基类的构造函数,这是语法规定.换句话说,定义派生类构造函数时最好指明基类构造函数:如果不指明,就调用基类的默认构造函数(不带参数的构造函数) ...

  6. C++基类和派生类的构造函数(一)

    前面我们说基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和派生类的名字也不一样,不能成 ...

  7. 派生类中构造函数与虚构函数的研究

    1.继承过程中的构造函数 A:继承与派生过程中,基类的构造函数不能被继承,派生类中需要声明自己的构造函数. B:声明构造函数时,只需要对本类中新增成员进行初始化.至于基类继承过来的成员,应该调用基类的 ...

  8. php 派生类 构造,C++派生类的构造函数和析构函数

    派生类对象中包含基类对象,因此派生类对象在创建时,除了要调用自身的构造函数进行初始化外,还要调用基类的构造函数初始化其包含的基类对象.因此,程序中任何能够生成派生类对象的语句,都要说明其包含的基类对象 ...

  9. C++ 基类和派生类的构造函数

    在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数完成,但是大部分基类都有 private 属性的成员变量,它们在派生类中无法访问,更不能使用派生类的构造函数来初始化. 解决办法: ...

  10. C++派生类的构造函数和析构函数

    C++派生类的构造函数和析构函数 派生类的构造函数和析构函数 #include <iostream> using namespace std; class student { public ...

最新文章

  1. Python List extend()方法
  2. sar sensor传感器的作用_传感器攻防战-惯导IMU
  3. hadoop HDFS常用文件操作命令
  4. Linux下的一些问题收集及解决方法(二)
  5. 417,你的能量不容低估,也不能高估
  6. 【HIMI转载推荐之三】新手教程之如何向APP STORE提交应用
  7. MVC架构模式(2)
  8. I00030 Grades conversion
  9. 读《刘帅:在失望中寻找希望》有感
  10. PS3中文游戏合集下载
  11. 在python中安装插件pynput实现聊天窗口消息轰炸
  12. 计算机网络奇偶校验码题目,计算机网络试题(考试必备)分解.doc
  13. PLC基础——1.自保持回路
  14. 为什么华为a1路由器网速变慢_华为路由器上网速度慢怎么办?
  15. 项目技术管理经验总结
  16. 一个帅哥到一个老头的历程
  17. msfvenom手册
  18. VR直播面临的五大技术挑战和实现难点
  19. 【渝粤题库】广东开放大学 公共政策学 形成性考核
  20. 南半球被烧了20多天! 西方媒体集体沉默! 这是全世界最残忍的一幕...

热门文章

  1. 记一次线上服务假死排查过程
  2. 第11章-img特征,vertical-align,cursor,opacity
  3. android 6.0版本名字,棉花糖Marshmallow 是Android 6.0的名字
  4. ribbon, restTemplate 负载均衡服务调用
  5. vue双向数据绑定v-model绑定单选框,复选框,下拉框
  6. ad17编辑界面怎么检查未连线_软件账务处理流程之——凭证审核与检查
  7. python3获取两个日期之间所有日期,以及比较大小
  8. ElasticSearch初体验之使用Java进行最基本的增删改查
  9. 使用requests模块简单获取数据
  10. axios、ajax和xhr前端发送测试