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


     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 }

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

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

  • 相关阅读:
    OGG初始化之使用Oracle Data Pump加载数据
    OGG初始化之使用数据库实用程序加载数据
    OGG初始加载过程概述
    管理凭证存储中的身份
    使用ENCKEYS方法加密数据
    使用主密钥和钱包方法加密数据
    配置Oracle GoldenGate安全性
    建立Oracle GoldenGate凭证
    System.DllNotFoundException:“无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块 的解决方法
    记录一下Oracle添加、查看表、字段注释及导出ddl
  • 原文地址:https://www.cnblogs.com/liuyaozhi/p/4942286.html
Copyright © 2020-2023  润新知