关于在C#对抽象类的理解

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

个人理解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();
        }
    }
}

时间: 2024-10-20 01:30:49

关于在C#对抽象类的理解的相关文章

结合具体项目谈谈对抽象类的理解

抽象类面向对象的语言中经常使用的类,网上也有各种各样的剖析,大致上都是做了以下方面的对比:1 抽象类和普通类的区别.2 抽象类和接口的区别. 3 抽象类中的虚方法和抽象方法的区别,首先去找到这些重大的区别,然后针对具体的项目来谈谈对这些概念的理解. 1 抽象类和普通类 A.都可以被继承 . B.抽象类不能被实例化,只是用来继承的,普通类可以实例化. C.抽象方法只有含方法声明而没有方法体且必须包含在抽象类里面. D.子类继承抽象类必须实现抽象类中的抽象方法除非子类也是抽象类. E.抽象类中可以包

Java中抽象类的理解

---------------------------------------- 今天来给大家分享一下我对抽 象类及抽象方法的理解: ---------------------------------------- 抽象类: 不能使用new方法进行实 例化的类,即没有具体实 例对象的类,只可以通过 抽象类派生出新的子类, 再由其子类来创建对象: 抽象方法: 抽象方法就是以 abstract 修饰的方法,这种方法只 声明返回的数据类型,方 法名称和所需要的参数, 没有方法体,也就是说抽 象方法只需

Java接口和抽象类的理解

接口和抽象类的相同之处就是 都会有抽象方法 抽象方法就是一个没有方法体 等待继承的子类完成的方法 然而接口比较严格 它的方法必须是抽象方法且是公开的 抽象类 可以有自己的属性 和 实体方法 首相用面向对象的思想来理解,类其实就是将生活中客观存在的对象,将对象的属性和特性封装起来 而接口与类不同,它不可以被实例化(这里指单独将接口实例化),因为它不可以当作一个对象 接口可以被理解为一种技能,功能.比如一扇门门可以有防盗及这个技能也可以同时拥有报警的功能 也就是说 一个类可以实现多个接口 然而每个子

关于在C#中对抽象类的理解

先说一下自己对类的理解吧.类就是指将一系列具有一些共同特性的事物归纳起来,按照不同的特性分为不同的类.比如在现实世界中人是一类,动物是一类.植物 又是一类.但他们都是生命这一类的派生类.他们都继承了生命类的一些特性.但他们各自又有一些不同的属性.在计算机世界中也有这样的类.类这一特性在面向 对象的语言中就有很好的体现. 个人理解C#中的抽象类是将某些类都具有的一些特性收集起来.然后再用这个抽象类来定义一些子类.当然这些子类可以自己再扩充一些私有的属性和方法.比如 正方形和长方形他们都具有的属性是

java的接口和抽象类的理解

Java接口和抽象类用法总结,使用场景 分类: java 2014-07-09 15:22 279人阅读 评论(0) 收藏 举报 原文转载自:http://yinny.iteye.com/blog/1152430 接口 1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口. 2 接口里面的成员变量默认都是public static final类型的.必须被显示的初始化. 3 接口里面的方法默认都是public abstract类型的

接口,抽象类的理解(转载)

深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.

关于接口和抽象类的理解

接口:接口的变量都是自动添加 public static final字段的,直接定义一个值,是不可以修改的,因此,他不需要构造方法: 2他的所有方法都必须被实现, 3不可以用类定义对象 抽象类:抽象类实现必须被继承,抽象类和普通父类最大的区别就是abstract修饰的方法必须实现,这也是和接口有一点的相似 2:不可以用类定义对象

Java 抽象类的理解

1. 基本概念 用abstract修饰的类是抽象类.如果类中有方法是abstract类型的,那么此类肯定是abstract类型的,也就是说此类的修饰符肯定有abstract(也就是说,有抽象方法的类是抽象类).抽象类是不完整的,只能作为基类,且不能够实例化. 2. 与类进行比较 抽象类不能够实例化,并且对抽象类直接使用new运算符会导致编译错误. 允许抽象类中包含抽象方法或者变量. 抽象类不能是private的. 3. 和接口比较 不同点: 抽象类能够有实现了的方法,接口不能有. 类可以实现无数

对php的接口类与抽象类的理解

php 接口类:interface 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容. 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的. 接口中定义的所有方法都必须是公有,这是接口的特性. 要实现一个接口,使用 implements 操作符.类中必须实现接口中定义的所有方法,否则会报一个致命错误.类可以实现多个接口,用逗号来分隔多个接口的名称. Note: 实现多个接口时,接口中的方法不能有重名