码迷,mamicode.com
首页 > 其他好文 > 详细

继承的理解---开始

时间:2015-05-18 12:14:30      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

一,概念理解

1. 继承可以理解为即由基类产生派生类的这一过程。如人类(基类),学生(派生类),小学生(更低一级派生类)。

2. 继承的派生类将拥有基类和自己的数据和行为。

二,继承规则

1.继承可以传递,object类为所有类的基类。

2.派生类应当是对基类的扩展。派生类无法去除已经继承的成员定义。

3.构造函数和析构函数不能被继承。

4.派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。我们可以使用new修饰符来声明具有相同名称或签名的新成员。

5.类可以使用virtual修饰符来定义虚方法,虚属性及虚索引指示器,它的派生类使用override修饰符来重载这些成员,从而实现类可以展示处多态性。

6.派生类只能从一个类中继承(即c#中只允许单一继承),但可以通过接口实现多重继承。---注:这个概念不是很清楚,可能后面需要进一步理解。

三,访问基类成员。

1.如果对类没有定义显示构造函数,则编译器将提供默认的构造函数,以初始化这些类的成员字段。但是,如果显式添加了构造函数,就可以有效的控制整个构造过程,我们可以通过base关键字来实现对基类公有或受保护成员的访问,但是只局限在构造函数、实例方法和属性访问器中。访问基类成员时,注意:

*调用基类上已被其他方法重写的方法;

*指定创建派生类实例时应调用的基类构造函数;

*基类访问只能在构造函数、实例方法或实例属性访问器中进行;

*从静态方法中使用base关键字是错误的。

四,重写方法

简单理解就是基类中声明为virtual、override或abstract的类型,在派生类中用override关键字重写方法。

注意:

*不能重写非虚方法或静态方法。

*override声明不能更改virtual方法的可访问性。

*不能使用修饰符new、static、virtual、abstract来修改override方法。

*重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是virtual、abstract或override的。

 

继承的理解---开始

标签:

原文地址:http://www.cnblogs.com/lilixiang-go/p/4511304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!