base是对父类的引用,而this是对类本身的引用。

namespace ConsoleApplication1
{
public class BaseClass
{
private string name;
private int age;
private string addr;
public BaseClass()
{
Console.WriteLine("No Info");
}
public BaseClass(string name)
{
this.name = name;
Console.WriteLine("name=" + this.name);
}
public BaseClass(string name, int age)
{
this.name = name;
this.age = age;
Console.WriteLine(string.Format("name={0},age={1}" ,this.name,this.age));
} public BaseClass(string name, int age,string addr)
{
this.name = name;
this.age = age;
this.addr = addr;
Console.WriteLine(string.Format("name={0},age={1},addr={2}", this.name, this.age, this.addr));
}
} public class ItemClass : BaseClass
{
private string name;
private int age; public ItemClass()
: this("demo")
{
//Console.WriteLine("No Info");
}
public ItemClass(string name)
: this("jimmy", 20)
{
this.name = name;
Console.WriteLine("name=" + this.name);
}
public ItemClass(string name, int age)
{
this.name = name;
this.age = age;
Console.WriteLine(string.Format("name={0},age={1}", this.name, this.age));
}
public ItemClass(string name,int age,string addr)
: base("jeason", 20,"shanghai")
{
Console.WriteLine("name=" + name);
} public static void Main()
{
ItemClass ic1 = new ItemClass("mike");
ItemClass ic2 = new ItemClass();
ItemClass ic3 = new ItemClass("mike",21,"chengdu");
}
}
} 

子类与基类的构造函数执行顺序:

先调用父类的构造函数进行初始化,再调用继承类的构造函数,如果没有在继承类中指明父类的构造函数,则默认调用父类中无参构造函数,然后调用继承类的构造函数。

构造函数中base与this的区别的更多相关文章

  1. C# 构造函数中base和this的使用。

    使用base时,首先给父类中的构造函数赋值. 使用this时,先调用父类无参构造函数,再调用自身其他构造函数并对其赋值,最后调用自身当前构造函数.

  2. C#-构造函数中base

    base 是调用基类的有参数构造函数  因为在子类不能直接继承父类的构造函数   实例 using System; using System.Collections.Generic; using Sy ...

  3. c# base和this在构造函数中的应用

    构造函数可以使用 base 关键字来调用基类的构造函数.例如: public class Manager : Employee{ public Manager(int annualSalary) : ...

  4. JS中构造函数和普通函数有什么区别

    JS中构造函数有普通函数有什么区别? 1.一般规则 构造函数都应该以 一个大写字母开头,eg: function Person(){...} 而非构造函数则应该以一个小写字母开头,eg: functi ...

  5. Java中this与super的区别【6】

    若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...

  6. hibernate中@Entity和@Table的区别

    Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...

  7. Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

    零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...

  8. 关于在C#中构造函数中调用虚函数的问题

    在C#中如果存在类的继承关系,应避免在构造函数中调用虚函数.这是由于C#的运行机制造成的,原因如下: 新建一个类实例时,C#会先初始化该类(对类变量赋值,并将函数记在函数表中),然后再初始化父类.构造 ...

  9. 创建 PDO 实例并在构造函数中设置错误模式

    PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象.如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 ...

随机推荐

  1. Python正则匹配之有名分组

    参考:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html # re.match import re m = re.match(r'( ...

  2. opencv实现坐标旋转(教你框住小姐姐)

    一.项目背景 最近在做一个人脸检测项目,需要接入百度AI的系统进行识别和检测.主要流程就是往指定的URL上post图片上去,之后接收检测结果就好了. 百度的检测结果包含这样的信息: left - 人脸 ...

  3. mysql 5.7 ERROR 1054(42S22) Unknown column 'password' in ‘field list’ 报错

    mysql 忘记密码 报错?ERROR 1054(42S22) Unknown column 'password' in ‘field list’原因:5.7版本下的mysql数据库下已经没有pass ...

  4. Linux修改MAC地址方法

    Linux修改MAC地址方法 - Linux modifies MAC address method ifconfig wlan0 down ifconfig wlan0 hw ether MAC地址 ...

  5. pyqt5-控件的显示与隐藏

    只有父控件显示,子控件才能显示 setVisible(bool)      设置控件是否可见 button.setVisible(True)     True 可见 setHidden(bool)  ...

  6. PHP7语法知识(二):流程控制语句、函数、字符串、数组

    流程控制: 一.条件控制语句 1.if条件控制语句: 2.switch分支语句: 二.循环控制语句 1.while循环: 2.do while循环: 3.for循环: 4.foreach循环: 三.跳 ...

  7. 导弹拦截 dp

    n∗lognn*lognn∗logn写法,lis[i]的意义为:所有最长上升子序列长度为i的位置上的最小a数组元素值lis[i]的意义为:所有最长上升子序列长度为i的位置上的最小a数组元素值lis[i ...

  8. visual studio code运行时报错,无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称,Cannot find module 'webpack'

    前言 因公司技术需求,这段时间成功进入了Vue 2.0 的坑,刚用起Visual Studio Code,却发现问题很多,发现一个错误:cnpm : 无法将“cnpm”项识别为 cmdlet.函数.脚 ...

  9. python基础(八种数据类型)

    Python的八种数据类型 八种数据类型分别是: number(数字).string(字符串).Boolean(布尔值).None(空值) list(列表).tuple(元组).dict(字典).se ...

  10. js查询参数

    /*参数查询*/ function GetQueryString(name){ var reg = new RegExp("(^|&)" + name + "=( ...