单元3 面向对象的C# C#程序设计课件.ppt
文本预览下载声明
抽象类和抽象方法使用注意: 抽象类不能实例化 要想使用抽象类,必须继承这个类,生成派生类 抽象方法没有语句块 要想使用抽象方法,必须对它进行重写 抽象方法所在的类必然是抽象类 抽象类中可以有抽象方法,也可以没有 实践任务1 设计一个绘画类(DrawingBase)为抽象类,并派生出Line类和Circle类,重载Draw(),显示不同的信息。 引例分析与实现 描述一个几何图形类,并派生出长方形类、正方形类、圆形类。 这里我们使用抽象来完成这个引例。请读者体会,虚方法和抽象在实现多态时的区别 public abstract class Dimensions { public const double PI = Math.PI; protected double x, y; public Dimensions() { } public Dimensions(double x, double y) { this.x = x; this.y = y; } public abstract double Area(); } public class Rectangle : Dimensions { public Rectangle(double l, double w) : base(l, w) { } public override double Area() { return x * y; } } public class Circle : Dimensions { public Circle(double r) : base(r, 0) { } public override double Area() { return PI * x * x; } } public class Square : Dimensions { public Square(double l) : base(l, 0) { } public override double Area() { return x * x; } } static void Main() { double r = 3.0, h = 5.0; Dimensions rec = new Rectangle(r, h); Dimensions c = new Circle(r); Dimensions s = new Square(r); Console.WriteLine(Area of Rectangle = {0}, c.Area()); Console.WriteLine(Area of Circle = {0}, rec.Area()); Console.WriteLine(Area of Square = {0}, s.Area()); Console.ReadKey(); } 归纳总结 知识要点: (1)方法隐藏,关键字new; (2)虚方法实现多态; (3)抽象类和抽象方法。 拓展实践 定义抽象类Pet(宠物)类为基类,类中定义两个私有字段毛色和年龄,定义虚方法完成宠物的自我介绍功能;定义两个派生类Cat和Dog,重写基类方法;定义包含主方法的类MainClass,调用派生类的重写
显示全部