您的位置:首页 > 职场人生

黑马程序员_继承之构造方法

2013-04-12 00:26 218 查看
------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

继承是面向对象程序设计的主要特征之一,它可以让你重用代码,可以节省程序设计的时间。继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。

C#中,类只能支持单继承,但可以多继承接口。除了构造方法和析构方法,派生类隐式地继承了直接基类的所有成员。

基类的初始化工作由基类的构造方法完成,派生类的初始化工作则有派生类的构造方法完成,但是这样就产生了派生类构造方法的执行顺序问题。

1.如果基类和派生类都没有定义构造方法,即使用默认的构造方法,又或者如果只有派生类定义构造方法时,只需构造派生类对象即可。对象的基类部分使用默认构造方法来自动创建。

如:

public class A

{

int i=0;

public A()

{

i= 5;

Console.WriteLine("我是 A 无参的构造函数 ,i = ", + i);

}

}

class B : A

{

}

class 继承

{

static void Main(string[] args)

{

B b = new B();//只需要构造派生类的对象,基类会自动创建

Console.ReadKey();

}

}

结果:I am A 公有默认构造函数 ,test=5

2.如果基类定义了带有参数的构造方法,那么此构造方法必须被执行,且在派生类中实现该构造方法,此时我们可以使用base关键字。

如:

class A

{

public int i;

public A(int i)

{

this.i = i;

Console.WriteLine("我是A的带参构造函数,i = " + this.i);

}

}

class B : A

{

public int i;

public B( string str, int j ) : base( j)

//执行基类的构造方法,注意:传送给基类的参数名必须和派生类的构造方法里定义的参数名相同,如此处的j,在派生类实例化对象时,传送给j的值也会传送给基类的构造方法。

{

Console.WriteLine("我是" + str + i);

}

}

class Program

{

static void Main(string[] args)

{

//实例化派生类,10也会传送给基类的构造函数

B b = new B("哇哈哈", 10);

Console.ReadKey();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: