先说一下自己对类的理解吧。类就是指将一系列具有一些共同特性的事物归纳起来,按照不同的特性分为不同的类。比如在现实世界中人是一类,动物是一类。植物 又是一类。但他们都是生命这一类的派生类。他们都继承了生命类的一些特性。但他们各自又有一些不同的属性。在计算机世界中也有这样的类。类这一特性在面向 对象的语言中就有很好的体现。

个人理解C#中的抽象类是将某些类都具有的一些特性收集起来。然后再用这个抽象类来定义一些子类。当然这些子类可以自己再扩充一些私有的属性和方法。比如 正方形和长方形他们都具有的属性是面积,周长等属性。但是他们又有一些不同的属性和方法,比如长方形有长和宽。正方形只有一个边长。他们各自的面积和周长 的计算方法也不一样。下面就举例来说明。上代码。。。

using System;
namespace ab_cl
{
    abstract class shape//定义一个抽象类( 要使用关键字abstract,不同于普通类的定义)
    {
        double area; //定义一个成员(面积)
    }
    class a:shape//定义一个长方形的类
    {
      private double length;//长方形的私有属性长
      private double width;//长方形的私有属性宽
        public a(double len, double wid)//定义一个带参的构造函数。主要用于长,宽的赋值
        {
            length = len;
            width = wid;
        }
        public double area()//用于计算长方形的面积
        {
            return length * width;
        }
        public double zhouchang()//用于计算长方形的周长
        {
            return (length + width) * 2;
        }
    }
    class b : shape//定义一个正方形的类
    {
      private double width;//定义正方形的私有属性边长
        public b(double wid)//定义一个带参的构造函数。主要用于边长的赋值
        {
            width = wid;
        }
        public double area()//计算正方形的面积
        {
            return width*width;
        }
        public double zhouchang()//用于计算正方形的周长
        {
            return width * 4;
        }
    }
    class c
    {
        static void Main()//入口函数
        {
            a t = new a(2.5, 1.2);//将长方形这个类实例化为对象
            b t1 = new b(2.5);//将正方形这个类实例化为对象
            Console.WriteLine("C#中抽象类的应用:");
            Console.WriteLine("长方形的面积是:{0}", t.area());
            Console.WriteLine("长方形的周长是:{0}", t.zhouchang());
            Console.WriteLine("正方形的面积是:{0}",t1.area());
            Console.WriteLine("正方形的周长是:{0}", t1.zhouchang());
            Console.ReadKey();
        }
    }
}

最新文章

  1. WCF学习之旅—TcpTrace工具(二十五)
  2. ftp协议详解
  3. ibatis 批量插入oracle总结
  4. 源代码管理工具(上)-SVN基本使用
  5. BZOJ 2594: [Wc2006]水管局长数据加强版(kruskal + LCT)
  6. Coursera台大机器学习课程笔记3 – 机器学习的可能性
  7. 使用Perl5获取有道词典释义
  8. 三个PHP常用代码样例
  9. 重新认识Swift中的可选型(Swift2.1)
  10. checkbox 与JS的应用
  11. selenium 远程服务设置
  12. 201521123121 《Java程序设计》第4周学习总结
  13. ES6 modules 详解
  14. tcp/ip 卷一 读书笔记(3)为什么既要有IP地址又要有MAC地址
  15. maven打包忽略静态资源解决办法,dispatchServlet拦截静态资源请求的解决办法
  16. 3--TestNG多线程
  17. iOS11自定义导航条上移处理
  18. QTP 自动货测试桌面程序-笔记-运行结果中添加截图
  19. php钩子原理和实现
  20. RequireJS模块化之循环依赖

热门文章

  1. hdu 5625
  2. bzoj 2457 [BeiJing2011]双端队列 模拟+贪心
  3. C#学习之泛型准备
  4. lnmp git ruby sass 安装
  5. MySql 利用函数 查询所有子节点
  6. Windows下端口占用查看
  7. dijkstra spfa prim kruskal 总结
  8. 爬虫--requests讲解
  9. 函数getopt()及其参数optind -- (转)
  10. 【转】ps命令详解