C#面向对象程序设计 第2版 教学课件 ppt 作者 郑宇军 CSCH5

上传人:E**** 文档编号:89343974 上传时间:2019-05-23 格式:PPT 页数:17 大小:2.24MB
返回 下载 相关 举报
C#面向对象程序设计 第2版  教学课件 ppt 作者  郑宇军 CSCH5_第1页
第1页 / 共17页
C#面向对象程序设计 第2版  教学课件 ppt 作者  郑宇军 CSCH5_第2页
第2页 / 共17页
C#面向对象程序设计 第2版  教学课件 ppt 作者  郑宇军 CSCH5_第3页
第3页 / 共17页
C#面向对象程序设计 第2版  教学课件 ppt 作者  郑宇军 CSCH5_第4页
第4页 / 共17页
C#面向对象程序设计 第2版  教学课件 ppt 作者  郑宇军 CSCH5_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C#面向对象程序设计 第2版 教学课件 ppt 作者 郑宇军 CSCH5》由会员分享,可在线阅读,更多相关《C#面向对象程序设计 第2版 教学课件 ppt 作者 郑宇军 CSCH5(17页珍藏版)》请在金锄头文库上搜索。

1、1,第5章 继承和多态,纲要,继承 多态性,2,继承,基类和派生类 自顶向下的分解 自底向上的抽象,3,图形,飞机,汽车,轮船,交通工具,继承,基类和派生类 .NET类库,4,继承,基类和派生类,5,public class Automobile private float speed = 100; public float Run(float distance) return distance/speed; public class Bus : Automobile ,Automobile a1 = new Automobile(); a1.Run(1000); Bus b1 = new B

2、us(); b1.Run(1000);,继承,对象的生命周期 构造 析构,6,public class Vehicle public class Automobile : Vehicle public class Car : Automobile public class Limousine : Car ,new Vehicle(),new Automobile(),new Car(),new Limousine(),Vehicle(),Automobile(), Car(),Limousine(),多态性,基类:普通成员 派生类:覆盖成员,7,public class Automobile

3、protected float speed; protected float weight; public float Run(float distance) return distance/speed; ,public class Car : Automobile public new float Run(float distance) return (1+weight/100) * distance/speed; ,多态性,覆盖:根据声明类型决定成员调用,8,Automobile a1 = new Truck(); a1.Run(1000); Car a2 = new Car(); a2.

4、Run(1000);,Automobile.Run,Car.Run,多态性,基类:虚拟成员,9,public class Automobile protected float speed; protected float weight; public virtual float Run(float distance) return distance/speed; ,多态性,基类:虚拟成员 派生类:重载成员,10,public class Truck : Automobile private float load; public override float Run(float distance

5、) return base.Run(1+(load+weight)/100); ,public class Car : Automobile public override float Run(float distance) return (1+weight/100) * distance/speed; ,多态性,重载:根据实际类型决定成员调用,11,Automobile a1 = new Car(); a1.Run(1000); Automobile a2 = new Truck(); a2.Run(1000);,Car.Run,Truck.Run,多态性,抽象类和抽象方法,12,publi

6、c abstract class Automobile protected float speed; protected float weight; public abstract float Run(float distance); ,Automobile a1 = new Automobile();,抽象类不能创建对象!,多态性,抽象类和抽象方法,13,public class Truck : Automobile private float load; ,非抽象派生类必须为基类的抽象方法提供实现!,多态性,抽象类和抽象方法,14,public class Truck : Automobi

7、le private float load; public override float Run(float distance) return base.Run(1+(load+weight)/100); ,多态性,密封类: 不能再被继承,15,public class BigTruck : Truck ,public sealed class Truck : Automobile private float load; public override float Run(float distance) return base.Run(1+(load+weight)/100); ,多态性,密封

8、方法: 不能再被重载,16,public class BigTruck : Truck public override float Run(float distance) return base.Run(1+2*(load+weight)/100); ,public class Truck : Automobile private float load; public sealed float Run(float distance) return base.Run(1+(load+weight)/100); ,17,本章习题,简述public, protected, private关键字在继承中的作用。 简述覆盖和重载的区别,以及它们各自的适用场合。 属性、索引函数和构造函数可否被虚拟和重载? 试说说图书馆管理系统中可能存在哪些虚拟和重载的情况?,

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

当前位置:首页 > 高等教育 > 大学课件

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