- 1、本文档共44页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 第6章 面向对象的程序设计4H.ppt
析构函数 析构函数:是在类定义中添加同名的成员函数,函数名前加上一个“~”号。如Student类的析构函数为: ~Student() { } 析构函数在对象销毁时被调用,常用来释放对象占用的存储空间。特点: 析构函数不能带有参数。 析构函数不能拥有访问修饰符。 不能显式地调用析构函数。 析构函数在对象销毁时自动调用。 析构函数不能重载,每个类只能有一个析构函数。 §6.4 类的继承 类的继承:利用现有的类(基类)生成新类称派生类,派生类拥有它所继承类的所有成员(方法、属性和事件)。派生类中可修改、添加属性和方法。 继承是面向对象程序设计中实现代码重用的重要机制之一,它起源于现实世界中事物之间的联系。 C#派生类是单继承,即只能有一个基类: class MyClass : MyBaseClass { // class members } 派生类可以访问基类的公共成员、 Proteded保护成员,不能访问基 类的私有成员。 父类 子类 动物 大象 猫 类的继承 例:派生类B具有基类A的数据和行为 。 所有的.NET类都派生于System.Object,没指定基类系统默认派生于object。所以所有类都具有Object的公共或受保护的成员方法。 C#中可以通过继承多个接口来实现类似于C++中的多重继承。 接口及其多继承 接口声明的方式与声明类的方式相似,它定义了一些未实现的属性和方法: public interface 接口名 { //声明一些未实现的属性和方法 } 接口所有的成员都是抽象的,只有声明而无实现; 接口的成员访问级别规定为public(可省略); 接口中不能含有构造函数、析构函数、静态成员和常量。 例:接口Ishape的声明 public interface Ishape { double GetArea();//接口是抽象成员,而不能用abstract。 } 接口及其多继承 接口的继承也可以用与类继承的类似方式来指定。主要的区别是可以使用多个基接口: public class 类名 : Interface1, Interface2… { //一般成员 // 接口中抽象成员的实现 } 例:继承Ishape接口实现矩形类。 public class Rectangle: Ishape { public double dblWidth; //宽 public double dblHeitht; //高 public Rectangle(double _dblWidth,double _dblHeight) { this.dblWidth=_dblWidth; this.dblHeitht=_dblHeight; } public double GetArea() // 继承类中抽象成员的实现 { return this.dblHeitht*this.dblWidth; } } §6.5 类的多态性 多态的意思是一种事物有多种形态。面向对象程序中多态性是指同一操作收到不同的消息(信息)或作用于不同的对象,可以有不同的解释,从而产生不同的执行结果的现象。 C#中有两种多态性: 1、编译时的多态性:是通过重载(overload)来实现的,包括方法重载和构造函数重载。 2、运行时的多态性:是通过继承和覆写虚成员、抽象成员来实现的;指直到系统运行时,才根据实际情况决定实现何种操作。 1、编译时的多态性 编译时的多态性通过方法重载实现多态性。 如类中方法重载: public class Test { public int Calculate(int x, int y) { return x + y; } public double Calculate(double x, double y) { return x + y; } } 特点: 方法名必须相同; 返回值类型可以不相同; 参数列表必须不相同。 编译时时会根据实参的数据类型确定调用那个方法。 编译时的多态性具有运行速度快的特点,而运行时的多态性则具有极大的灵活性。 2、运行时的多态性 运行时的多态性是通过继承和覆写虚成员来实现的。子类中为满足自己的需要来重复定义某个方法的不同实现。 通过使用override关键字来实现覆写,只有虚方法和抽象方法才能被覆写。 override 虚方法 override 抽象方法 特点(也是覆写要求): 相同的方法名称 相同的参数列表 相同的
文档评论(0)