• 自定义一个抽象类,用来计算圆的面积


     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 myClass
    13     //{
    14     //    private int r = 0;
    15     //    /// <summary>
    16     //    /// 圆半径
    17     //    /// </summary>
    18     //    public int R
    19     //    {
    20     //        get
    21     //        {
    22     //            return r;
    23     //        }
    24     //        set
    25     //        {
    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 Program
    45     //{
    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 }

     经过调试发现,在实例化派生类之后,使用派生类对象实例化抽象类后,直接用实例化的派生类对象访问抽象类的半径属性或使用实例化的派生类对象调用派生类方法皆可,

    毕竟继承自抽象类的派生类可以访问抽象类里面的属性

  • 相关阅读:
    java总结2
    java总结
    java动手动脑
    今日代码总结
    JavaScript 中 几 个需要掌握基础的问题
    JavaScript中如何将指定的某个字符全部转换为其他字符
    HTML页面一键分享到QQ空间、QQ好友、新浪微博、微信代码
    jq动画里这样写css属性
    h5 前端面试题
    ES6 object.defineProperty
  • 原文地址:https://www.cnblogs.com/liuyaozhi/p/4942286.html
Copyright © 2020-2023  润新知