1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Test07 7 { 8 /**************************************************** 9 * 10 * 示例代码11 * ***************************************************/12 //public abstract class myClass13 //{14 // private int r = 0;15 // /// <summary>16 // /// 圆半径17 // /// </summary>18 // public int R19 // {20 // get21 // {22 // return r;23 // }24 // set25 // {26 // r = value;27 // }28 // }29 // /// <summary>30 // /// 抽象方法,用来计算圆面积31 // /// </summary>32 // public abstract double Area();33 //}34 //public class DriveClass : myClass//继承抽象类35 //{36 // /// <summary>37 // /// 重写抽象类中计算圆面积的方法38 // /// </summary>39 // public override double Area()40 // {41 // return Math.PI * R * R;42 // }43 //}44 //class Program45 //{46 // static void Main(string[] args)47 // {48 // DriveClass driveclass = new DriveClass();//实例化派生类49 // myClass myclass = driveclass;//使用派生类对象实例化抽象类50 // myclass.R = 3;//使用抽象类对象访问抽象类中的半径属性51 // Console.WriteLine("圆面积为:" + myclass.Area());//使用抽象类对象调用派生类中的的方法52 // }53 //}54 55 56 /****************************************************57 * 58 * 我的代码59 * ***************************************************/60 public abstract class myClass 61 {62 private int r;63 public int R 64 {65 get { return r; }66 set { r = value; }67 }68 public abstract double Area();69 }70 public class Driveclass : myClass 71 {72 public override double Area() 73 {74 return Math.PI * R * R;75 }76 }77 class Program 78 {79 static void Main(string[] args) 80 {81 Driveclass driveclass = new Driveclass();82 myClass myclass = driveclass;83 driveclass.R = 1;84 85 Console.WriteLine("圆的面积是"+ driveclass.Area());86 }87 }88 }
经过调试发现,在实例化派生类之后,使用派生类对象实例化抽象类后,直接用实例化的派生类对象访问抽象类的半径属性和使用实例化的派生类对象调用派生类方法也可