您的位置:首页 > 编程语言 > C#

.Net C#语法 构造函数中this和base

2012-09-27 15:43 453 查看
public class TestClassA

{

public TestClassA()

{

Console.WriteLine("我是在TestClassA中的TestClassA()构造函数中");

}

public TestClassA(string a, string b)

{

Console.WriteLine("我是在TestClassA中的TestClassA(string a, string b)构造函数中");

}

public TestClassA(string a)

: this(a, "b")

{

Console.WriteLine("我是在TestClassA中的TestClassA(string a): this(a, \"b\")构造函数中");

}

}

public class TestClassB : TestClassA

{

public TestClassB()

{

Console.WriteLine("我是在TestClassB中的TestClassB()构造函数中");

}

public TestClassB(string a, string b)

: base(a, b)

{

Console.WriteLine("我是在TestClassB中的TestClassB(string a, string b): base(a, b)构造函数中");

}

public TestClassB(string a)

: this(a, "b")

{

Console.WriteLine("我是在TestClassB中的TestClassB(string a, string b): this(a, \"b\")构造函数中");

}

}

Console.WriteLine("TestClassA Father1 = new TestClassA();运行结果:");

TestClassA Father1 = new TestClassA();

Console.WriteLine();

Console.WriteLine("TestClassA Father2 = new TestClassA(\"f2\", \"f2\");运行结果:");

TestClassA Father2 = new TestClassA("f2", "f2");

Console.WriteLine();

Console.WriteLine("TestClassA Father3 = new TestClassA(\"f3\");运行结果:");

TestClassA Father3 = new TestClassA("f3");

Console.WriteLine();

Console.WriteLine("TestClassB Son1 = new TestClassB();运行结果:");

TestClassB Son1 = new TestClassB();

Console.WriteLine();

Console.WriteLine("TestClassB Son2 = new TestClassB(\"s2\", \"s2\");运行结果:");

TestClassB Son2 = new TestClassB("s2", "s2");

Console.WriteLine();

Console.WriteLine("TestClassB Son3 = new TestClassB(\"s3\");运行结果:");

TestClassB Son3 = new TestClassB("s3");

Console.WriteLine();

分析:

this:调用的是本身,不能调用父类和子类的

base:调用父类的,不能调用本身的,但别人继承,可以调用

从中也可以得出另外个结果构造函数的运行过程 先从基类开始构造再到类本身
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: