C#语言初级入门(3)

在这最后一个例子中,我们来看看C#的抽象和多态性。首先我们来定义一下这两个新的术语。抽象(Abstract)通过从多个对象提取出公共部分并把它们并入单独的抽象类中实现。在本例中我们将创建一个抽象类Shape(形状)。每一个形状都拥有返回其颜色的方法,不论是正方形还是圆形、长方形,返回颜色的方法总是相同的,因此这个方法可以提取出来放入父类Shape。这样,如果我们有10个不同的形状需要有返回颜色的方法,现在只需在父类中创建一个方法。可以看到使用抽象使得代码更加简短。

   在面向对象编程领域中,多态性(Polymorphism)是对象或者方法根据类的不同而作出不同行为的能力。在下面这个例子中,抽象类Shape有一个getArea()方法,针对不同的形状(圆形、正方形或者长方形)它具有不同的功能。

   下面是代码:

public abstract class Shape {
   protected string color;
   public Shape(string color) {
      this.color = color;
   }
   public string getColor() {
      return color;
   }
   public abstract double getArea();
}

public class Circle : Shape {
   private double radius;
   public Circle(string color, double radius) : base(color) {
      this.radius = radius;
   }
   public override double getArea() {
      return System.Math.PI * radius * radius;
   }
}

public class Square : Shape {
   private double sideLen;
   public Square(string color, double sideLen) : base(color) {
      this.sideLen = sideLen;
   }
   public override double getArea() {
      return sideLen * sideLen;
   }
}

/*
public class Rectangle : Shape
...略...
*/

public class Example3
{
   static void Main()
   {
     Shape myCircle = new Circle("orange", 3);
     Shape myRectangle = new Rectangle("red", 8, 4);
     Shape mySquare = new Square("green", 4);
     System.Console.WriteLine("圆的颜色是" + myCircle.getColor()
                    + "它的面积是" + myCircle.getArea() + ".");
     System.Console.WriteLine("长方形的颜色是" + myRectangle.getColor()
                    + "它的面积是" + myRectangle.getArea() + ".");
     System.Console.WriteLine("正方形的颜色是" + mySquare.getColor()
                    + "它的面积是" + mySquare.getArea() + ".");
   }
}

  

时间: 2024-10-30 18:41:53

C#语言初级入门(3)的相关文章

C#语言初级入门(1)

导读 C#是Microsoft开发的一种新语言,它和C/C++一样强大,和Java一样提供丰富的网络编程支持和自动内存管理,和VB一样简单易用.本文的目的是为尚未接触过C#的程序员介绍这种编程语言,是一个基础的入门教程.作者:仙人掌工作室2001-02-20 原文出处:http://journal.iftech.com/articles/0011_joey_CSharp/ C#读作"C sharp",它是Microsoft开发的一种新语言,结合了C/C++的强大功能和Visual Ba

C#语言初级入门(4)

我们创建的第一个类是Shape.这是一个抽象类,因为我们不想创建这个类的实例,我们要创建的是它的派生类的实例.我们从所有的形状(圆.长方形.正方形)提取出共同特征到Shape类.Shape类有一个实例变量color,它的变量声明中带有protected修饰符.protected修饰符表示这个变量只能在类的内部或者该类的派生类中访问.紧接这个变量声明的就是Shape类的构造函数和存取方法getColor(),这两个方法都没有什么新的东西.最后一个方法getArea()加上了abstract修饰符,

C#语言初级入门(2)

下面这个例子示范如何创建和使用用户定义的类以及如何创建动态链接库.利用文本编辑器创建两个文件.第一个是Apple.cs,内容如下: public class Apple {    private string variety = "";    public Apple(string appleVariety) {      this.variety = appleVariety;   }    public void outputVariety() {      System.Cons

C#语言初级入门介绍_基础应用

 本文的目的在于为尚未接触过C#的程序员介绍这种编程语言.不论你以前是否用过C/C++或者Java,都可以从本文开始学习C#.本文的唯一假定是你具有某种类型的编程知识(如具有面向对象编程的经验则更好,但并非必须),并拥有某种类型的C#编译器. 最简单的C#程序 首先我们来看标准的Hello World程序.用文本编辑器创建一个新文件HelloWorld.cs,把下面的代码放入这个文件: // 第一个c#程序 class HelloWorld { static void Main() { Syst

SQL语言快速入门(一)

sql语言|快速入门 SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准.虽然

SQL语言快速入门(三)

sql语言|快速入门 我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库中创建名为Store_Information的如下数据表. Store_Information Store_Name Sales Date Los Angeles 00 Jan-10-2000 San Diego 0 Jan-11-2000 Los Angeles 0 Jan-

SQL语言快速入门(二)

sql语言|快速入门 创建表格 SQL语言中的create table语句被用来建立新的数据库表格.Create table语句的使用格式如下: create table tablename (column1 data type, column2 data type, column3 data type); 如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项: create table tablename (column1 data type [constraint], colu

SQL语言快速入门之一

sql语言|快速入门 SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准.虽然

SQL语言快速入门之二

sql语言|快速入门 创建表格 SQL语言中的create table语句被用来建立新的数据库表格.Create table语句的使用格式如下: create table tablename (column1 data type, column2 data type, column3 data type); 如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项: create table tablename (column1 data type [constraint], colu