构造函数中base与this的区别
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的区别的更多相关文章
- C# 构造函数中base和this的使用。
使用base时,首先给父类中的构造函数赋值. 使用this时,先调用父类无参构造函数,再调用自身其他构造函数并对其赋值,最后调用自身当前构造函数.
- C#-构造函数中base
base 是调用基类的有参数构造函数 因为在子类不能直接继承父类的构造函数 实例 using System; using System.Collections.Generic; using Sy ...
- c# base和this在构造函数中的应用
构造函数可以使用 base 关键字来调用基类的构造函数.例如: public class Manager : Employee{ public Manager(int annualSalary) : ...
- JS中构造函数和普通函数有什么区别
JS中构造函数有普通函数有什么区别? 1.一般规则 构造函数都应该以 一个大写字母开头,eg: function Person(){...} 而非构造函数则应该以一个小写字母开头,eg: functi ...
- Java中this与super的区别【6】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...
- hibernate中@Entity和@Table的区别
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...
- Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...
- 关于在C#中构造函数中调用虚函数的问题
在C#中如果存在类的继承关系,应避免在构造函数中调用虚函数.这是由于C#的运行机制造成的,原因如下: 新建一个类实例时,C#会先初始化该类(对类变量赋值,并将函数记在函数表中),然后再初始化父类.构造 ...
- 创建 PDO 实例并在构造函数中设置错误模式
PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象.如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 ...
随机推荐
- dubbo的具体使用
dubbo的具体使用: dubbo简介: 1.1. 什么是dubbo 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,急需一个治理 ...
- vmware+centos
centos 7 在安装的时候使用 net.ifname=0 biosdevname=0 使网卡名和以前一样 /boot 引导系统启动,内核 /swap 交换分区,临时作为内存使用防止内存不够使用导致 ...
- Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
(1)JSON.parse函数 作用:将json字符串转换成json对象. 语法:JSON. parse(text[,reviver]). 参数:text 必须:一个有效的json字符串. revi ...
- luogu P4173 残缺的字符串
传送门 两种做法,一种是依次考虑每种字符,然后如果某个位置是该字符或者是\(*\)对应的值就是1,否则是0,然后把第一个串倒过来,fft卷积起来,最后看对应位置的值是否为m 然而上面那个做法在字符集大 ...
- Elasticsearch 5.0 —— Head插件部署指南(Head目前支持5.0了!请不要看本篇文章了)
使用ES的基本都会使用过head,但是版本升级到5.0后,head插件就不好使了.下面就看看如何在5.0中启动Head插件吧! Head目前支持5.0了!请不要看本篇文章了 Head目前支持5.0了! ...
- Spark On Yarn报警告信息 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
1 贴出完整日志信息 // :: INFO client.RMProxy: Connecting to ResourceManager at hdp1/ // :: INFO yarn.Client: ...
- printf是在libc库中么?
libc中果然有很多的函数,使用nm看了一下,里面竟然还有reboot函数,汗! 使用grep,可以看到各种 printf 也都在这里头. objdump是看函数的地址与函数名对应的,虽然也能证明pr ...
- 自制rpm包
参考自:https://blog.csdn.net/u010384744/article/details/80929319 https://blog.csdn.net/samxx8/article/d ...
- mysql 原理 ~ kill session解析
一 简介:kill session为什么需要很久 二 kill语句分为三类 1 DML语句 2 select语句 3 DDL语句 三 kill都要做什么操作 1 kill对sessio ...
- mongodb系列~ mongodb慢语句(1)
1 简介:讲讲mongo的慢日志2 慢日志类型 query insert update delete 3 查看慢日志 1 db.system.profile.find() 慢日志总揽 2 d ...