c#之:面向对象高级概念

上传人:第*** 文档编号:51765178 上传时间:2018-08-16 格式:PPT 页数:18 大小:260.26KB
返回 下载 相关 举报
c#之:面向对象高级概念_第1页
第1页 / 共18页
c#之:面向对象高级概念_第2页
第2页 / 共18页
c#之:面向对象高级概念_第3页
第3页 / 共18页
c#之:面向对象高级概念_第4页
第4页 / 共18页
c#之:面向对象高级概念_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《c#之:面向对象高级概念》由会员分享,可在线阅读,更多相关《c#之:面向对象高级概念(18页珍藏版)》请在金锄头文库上搜索。

1、微软IT学院面向对对象的高级应级应 用微软IT学院:郝全超C#对对象篇微软IT学院内容提要l 一般化与具体化l 继承以及实现继 承l 多态、多态类 型、多态方法l 调用基类的构造方法l protected 访问 修饰符、new操作符l 抽象、抽象方法、密封l 万物之根:Object微软IT学院一般化与具体化类及其实例并不是单独存在的,它们存在于各 种相互依赖的关系网络之中,如同实际 社会的 动物生活在各种关系以及类别 当中一样。“是” (is-a)关系就是一种具体化。当我们说 狗 是一种哺乳动物时,指的狗就是某一种具体的 哺乳动物。狗和猫是哺乳动物的具体化,而哺乳动物是狗 和猫的一般化。微软I

2、T学院一般化与具体化MammalDogCat具体类类一般类类我们说:Dog is a Mammal微软IT学院一般化与具体化进一步延伸出更复杂的层次关系AnimalMammalFishBirdDogCatEagleSparrowGoldFishShark微软IT学院继承与实现继承l 继承:在C#中,具体化的关系通常是用继承 实现 的。对于前面的例子,我们可以说: Dog继承自Mammal(狗类继 承自哺乳动物) 或者说Dog派生自Mammal。那Dog就是具体 化了Mammal类。l 实现继 承:public class Dog : Mammal/派生类Dog将继承基类Mammal所有的成员。

3、举例说 明微软IT学院多态l 继承有两个功能强大的方面。第一个就是代码重用 ,通过前面的例子,我们可以看到派生类可以复用 基类的成员或者方法。l 第二个方面则更加的强大,这就是多态态性。多态性 指的是可以使用一种类型的多种形式,而不考虑细 节。举例子:1、来根烟2、今天中午想吃鱼,来条鱼微软IT学院创建多态类型l 具有继承关系的基类就是一种多态类型。比如我想 听到动物的叫声,我并不关心具体什么动物在叫, 我只要享受听声音的过程,当然我希望能够听到不 同的叫声,那样才有不一样的感觉!l 举例说明:微软IT学院创建多态方法l 在基类(父类)中使用virtual 关键字l 在派生类中使用overri

4、de关键字,来重写父类中的用 virtual声明的方法。l 方法重写与方法重载的区别。l 举例说明:微软IT学院调用基类的构造方法public Dog(string name):base(name)关于访问级别 修饰符:protected 的用法。举例说明微软IT学院抽象类(abstract class)在讲解抽象类概念之前,首先将前面的继承与多态概 念复习一下,重新写一下关于继承与多态的代码,这 里仍以哺乳动物为例。(课课堂练习练习 )Mammal的每个子类都重写了Howl的方法,实现了自己 独特的叫声,但是这里并没有硬性的要求,子类完全 可以不用重写Howl方法。如果需要子类必须实现 基类

5、的方法,就应该指定该方 法为抽象(abstract)的。如果某个类包含抽象方法,那 么该类类也必须须声明为为抽象的。微软IT学院抽象方法抽象方法没有实现,只有名称和参数,如果我们将基 类中的Howl方法改为抽象方法,必须遵循如下写法:public abstract void Howl();而且由于没有方法体,小括号后面就直接以分号结束。下面我们改写前面的哺乳动物的例子:注意事项项:具有抽象方法的类必须是抽象类,而抽象 类是无法实例化的。派生自抽象类的子类必须实现 基 类的抽象方法,如果不想实现的话,派生类也必须声 明为抽象的。微软IT学院密封类跟抽象概念相反,密封类则坚 决不允许有派生类。如果

6、将前面的Mammal改写为:public sealed class Mammal()这时候程序就会报错,因为密封类不允许有其他类派 生自它。微软IT学院万类之根:Object所有的C#类,无论何种类型,都可以看成最终是从 System.Object派生而来的。可以将C#类看成一个倒树:树根则是ObjectObject既然是万类之根,那么它有哪些需要重写的方法 呢?常见见方法作用Equals()比较两个对象是否相同GetHashCdoe()获取对象的散列码GetType()获取对象的类型ToString()提供对象的字符串表示微软IT学院关于protected和new1、protected 访问级别 一个类中的字段或者方法、属性使用了protected修 饰符,则该字段或方法只能用在本类或者该类的派生 类中。因此,protected修饰的字段受“家族”保护。2、new操作符 在继承中的用法有时候我们子类中的方法和父类的虚方法相同, 但 是它又不想受到父类的影响,也就是不想重写父类, 可以这样声明:public new void Howl()。这样子类就可 以覆盖父类的方法了,就算父类方法有所改变也不影 响。(可以将new翻译成新的)微软IT学院UML图形建模描述类微软IT学院UML图形建模描述类微软IT学院UML图形描述类的继承层次

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号