明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

C#語(yǔ)言初級(jí)基礎(chǔ)(3)

[摘要]在這最后一個(gè)例子中,我們來看看C#的抽象和多態(tài)性。首先我們來定義一下這兩個(gè)新的術(shù)語(yǔ)。抽象(Abstract)通過從多個(gè)對(duì)象提取出公共部分并把它們并入單獨(dú)的抽象類中實(shí)現(xiàn)。在本例中我們將創(chuàng)建一個(gè)抽象類Shape(形狀)。每一個(gè)形狀都擁有返回其顏色的方法,不論是正方形還是圓形、長(zhǎng)方形,返回顏色的方法總是...

在這最后一個(gè)例子中,我們來看看C#的抽象和多態(tài)性。首先我們來定義一下這兩個(gè)新的術(shù)語(yǔ)。抽象(Abstract)通過從多個(gè)對(duì)象提取出公共部分并把它們并入單獨(dú)的抽象類中實(shí)現(xiàn)。在本例中我們將創(chuàng)建一個(gè)抽象類Shape(形狀)。每一個(gè)形狀都擁有返回其顏色的方法,不論是正方形還是圓形、長(zhǎng)方形,返回顏色的方法總是相同的,因此這個(gè)方法可以提取出來放入父類Shape。這樣,如果我們有10個(gè)不同的形狀需要有返回顏色的方法,現(xiàn)在只需在父類中創(chuàng)建一個(gè)方法?梢钥吹绞褂贸橄笫沟么a更加簡(jiǎn)短。

   在面向?qū)ο缶幊填I(lǐng)域中,多態(tài)性(Polymorphism)是對(duì)象或者方法根據(jù)類的不同而作出不同行為的能力。在下面這個(gè)例子中,抽象類Shape有一個(gè)getArea()方法,針對(duì)不同的形狀(圓形、正方形或者長(zhǎng)方形)它具有不同的功能。

   下面是代碼:


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("長(zhǎng)方形的顏色是" + myRectangle.getColor()
+ "它的面積是" + myRectangle.getArea() + ".");
System.Console.WriteLine("正方形的顏色是" + mySquare.getColor()
+ "它的面積是" + mySquare.getArea() + ".");
}
}