C#高级编程学习笔记--------构造函数(层次结构中添加参数的构造函数)
来源:互联网 发布:linq去重复数据 编辑:程序博客网 时间:2024/04/28 22:30
using System;
namespace Wrox.ProCSharp.OOProg
{
abstract class GenericCustomer
{
private string name;
public GenericCustomer(string name)
//: base(name)
{
this.name = name;
}
}
/*基类的无参数构造函数不能声明为private,因为派生类的默认的构造函数会调用无参数的基类的构造函数,除非将派生类指定调用 其它构造函数*/
//这里讨论处理不同重载寒素和一个类的层次结构
class Nevermore60Customer : GenericCustomer
{
public string re;
public uint hightCostMinutesUsed;
//为派生类定义自己的构造函数?为什么要定义一个构造函数呢?默认的构造函数会调用会调用无参数的GenericCustomer的构造函数,这不是我们想要的结果/
//为什么定义两个构造函数?--不是所有的GenericCustomer都有联系人
public Nevermore60Customer(string name, string re) //----------------------------- 构造函数A
: base(name)
{
this.re = re;
}
/*关键字base表示是基类的构造函数,而不是要调用类的构造函数
而this关键字调用自己类的构造函数*/
//不是所有的GenericCustomer都有联系人,没有联系人re字段设置为<none>
public Nevermore60Customer(string name) //-------------------构造函数B
: this(name, "<None>")
{
}
}
class test
{
public static void Main()
{
//这样确定了所有的构造函数,执行下面的代码检查事件链是很有益的,编译器认为它需要一个字符串的参数的构造函数,所以他确认的构造函数就是B
Nevermore60Customer t1 = new Nevermore60Customer("武大郎");
//在实例化ti时,就调用B函数,之后吧控制权传送给对应的Nevermore60Customer构造函数。该函数带2个参数,分别是武大郎和<none>。在这个构造函数中,
//吧控制权依次给GenericCustomer构造函数,该构造函数带一个参数,即字符串武大郎,然后这个构造函数吧控制权传送给vSystem.object默认构造函数,
//现在执行这些构造函数:首先执行system.object构造函数,接着执行Nevermore60Customer构造函数,初始化name字段,然后带有两个参数的Nevermore60Customer
//构造函数得到控制权,吧联系人的姓名初始化为<none>,最后执行Nevermore60Customer构造函数,该构造函数带一个参数,这个构造函数什么也不做。
Console.WriteLine(t1.hightCostMinutesUsed.ToString());
Console.WriteLine(t1.re.ToString());
Console.ReadLine();
}
}
}
namespace Wrox.ProCSharp.OOProg
{
abstract class GenericCustomer
{
private string name;
public GenericCustomer(string name)
//: base(name)
{
this.name = name;
}
}
/*基类的无参数构造函数不能声明为private,因为派生类的默认的构造函数会调用无参数的基类的构造函数,除非将派生类指定调用 其它构造函数*/
//这里讨论处理不同重载寒素和一个类的层次结构
class Nevermore60Customer : GenericCustomer
{
public string re;
public uint hightCostMinutesUsed;
//为派生类定义自己的构造函数?为什么要定义一个构造函数呢?默认的构造函数会调用会调用无参数的GenericCustomer的构造函数,这不是我们想要的结果/
//为什么定义两个构造函数?--不是所有的GenericCustomer都有联系人
public Nevermore60Customer(string name, string re) //----------------------------- 构造函数A
: base(name)
{
this.re = re;
}
/*关键字base表示是基类的构造函数,而不是要调用类的构造函数
而this关键字调用自己类的构造函数*/
//不是所有的GenericCustomer都有联系人,没有联系人re字段设置为<none>
public Nevermore60Customer(string name) //-------------------构造函数B
: this(name, "<None>")
{
}
}
class test
{
public static void Main()
{
//这样确定了所有的构造函数,执行下面的代码检查事件链是很有益的,编译器认为它需要一个字符串的参数的构造函数,所以他确认的构造函数就是B
Nevermore60Customer t1 = new Nevermore60Customer("武大郎");
//在实例化ti时,就调用B函数,之后吧控制权传送给对应的Nevermore60Customer构造函数。该函数带2个参数,分别是武大郎和<none>。在这个构造函数中,
//吧控制权依次给GenericCustomer构造函数,该构造函数带一个参数,即字符串武大郎,然后这个构造函数吧控制权传送给vSystem.object默认构造函数,
//现在执行这些构造函数:首先执行system.object构造函数,接着执行Nevermore60Customer构造函数,初始化name字段,然后带有两个参数的Nevermore60Customer
//构造函数得到控制权,吧联系人的姓名初始化为<none>,最后执行Nevermore60Customer构造函数,该构造函数带一个参数,这个构造函数什么也不做。
Console.WriteLine(t1.hightCostMinutesUsed.ToString());
Console.WriteLine(t1.re.ToString());
Console.ReadLine();
}
}
}
- C#高级编程学习笔记--------构造函数(层次结构中添加参数的构造函数)
- 在层次结构中添加带参数的构造函数
- C#高级编程学习笔记--------构造函数
- C#高级编程学习笔记--------构造函数(1)
- 派生类的构造函数(层次结构)
- C#高级编程学习----构造函数和析构函数的用法
- C#高级编程十四天----构造函数
- C#中静态构造函数的学习
- C#中静态构造函数的学习
- C#中静态构造函数的学习
- C#中静态构造函数的学习
- C#中静态构造函数的学习
- C#2005 .NET3.0高级编程学习笔记————类的函数成员(构造函数,只读字段)
- C++中构造函数默认参数学习笔记
- 结构体-默认参数的构造函数
- C#中怎样学好带参数的构造函数
- C#中构造函数
- C#带参数的构造函数
- Excel 表格应用技巧
- 指令名称 : chmod
- SQL语句导入导出大全
- ASP.NET设置ie打印两法
- VMWare 重装后加载了系统导致XWindow启动不了
- C#高级编程学习笔记--------构造函数(层次结构中添加参数的构造函数)
- 使用ADO编写数据库程序
- 平凡
- 怎样定位自己
- c语言中的结构(struct)和联合(union)简介
- OpenSchema 方法详解
- Spring AOP中文教程
- 毕业,是结束,更是开始!
- 将gridview导出成Excel