4范本.4范本.类的多态性范本.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
声明抽象方法的基本语法为: [访问修饰符] abstract 返回类型 方法名([参数列表]); 声明抽象类的基本语法为: [访问修饰符] abstract 类名{ } * 例如: public abstract class Anmial { ??? protected double Weight; ???? public abstract void Eat(); //抽象方法 } * 当派生类从抽象类中继承一个抽象方法时,派生类必须重载该抽象方法。下面代码中,Cat类派生自Animal类,并通过使用override关键字重载了Animal类中的Eat方法。 public class Cat:Animal { ???? public override void Eat(){ ???? Console.WriteLine(Eat fish); ??? ? ?} }??? * 【案例2-10】形状类。 本案例定义一组具有继承关系的类。Shape(形状)类是一个抽象类,包含了4个数据成员(坐标:x、y,颜色:c,图形对象:g)、一个构造方法和两个抽象方法(求面积方法:area(),画图的方法:draw())。Square(正方形)由Shape派生而来;Rectangle(矩形)由Square派生而来;Circle(圆)由Shape派生而来。 * 2.6.2 接口 一个接口定义一个协定。实现接口的类或结构必须遵守其协定。在某种程度上,接口像一个抽象类。和任何类一样,接口可以定义方法、属性、事件等。但是,接口不提供成员的实现。实现接口的任何类都必须提供接口中所声明的抽象成员的定义。 * 精选 课件 精选 课件 精选 课件 精选 课件 精选 课件 精选 课件 精选 课件 精选 课件 精选 课件 面向对象程序设计 (Visual C# .NET) 无锡工艺职业技术学院 王健光 7.1 基本概念 所谓多态,就是把派生类对象当成基类对象来使用。换句话说,就是认为派生类对象是(is a)一种基类对象。 把派生类对象当成基类对象来使用,就是“多态”技术的核心。 多态性引用只能引用基类的成员。 多态的实现方式有以下几种: 虚方法 抽象方法 接口 * 7.2 虚方法 如果希望基类中的某个方法能够在派生类中进一步得到改进,那么可以把这个方法定义为虚方法。 虚方法就是能在派生类中能够对其实现进一步改进的方法。 在基类的定义中,通过virtual关键字来说明该方法为虚方法。 在派生类的定义中,如果要重载基类的虚方法,使用override关键字。 * public class Point { public virtual double Area() { return 0.0; } } public class Circle : Point { public override void Area() { return Math.PI * Math.Pow(this.radius,2); } } * * 多态性测试 Point[] pointArray = new Point[5]; pointArray[0] = new Point(10,10); pointArray[1] = new Circle(20,20,3.5); pointArray[2] = new Cylinder(30,30,4.5,5); pointArray[3] = new Point(40,40); pointArray[4] = new Circle(50,50,2.5); string output = ; foreach (Point p in pointArray) { output += p.Name+:\t+p.ToString()+\n +\t面积:+p.Area()+\n +\t体积:+p.Volume()+\n\n; } MessageBox.Show(output, 类的多态性示例); 示例代码位于“CSharp示例\第7课\PointCirlceCylinder” * 7.3 抽象方法 基类中定义的虚方法,派生类可以重新以新的方式实现(使用override关键字),也可以不提供实现,这时,调用的是基类的实现方法。 有时,在基类定义中,基类不提供实现方法,而要求派生类必须实现该方法。这时,可以使用抽象方法。 在定义基类方法时,使用abstract关键字,可以定义抽象方法。 抽象方法是一个没有被实现的空方法。 含有抽象方法的类是抽象类,只能由派生类来继承,而不能用来实例化对象。相当于定义了一个模板。 并不要求抽象类必须包含抽象成员。含有抽象成员的类一定是抽象类。抽

文档评论(0)

liuxiaoyu92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档