先說一下自己對類的理解吧。類就是指將一系列具有一些共同特性的事物歸納起來,按照不同的特性分為不同的類。比如在現實世界中人是一類,動物是一類。植物 又是一類。但他們都是生命這一類的派生類。他們都繼承了生命類的一些特性。但他們各自又有一些不同的屬性。在計算機世界中也有這樣的類。類這一特性在面向 對象的語言中就有很好的體現。
個人理解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();
}
}
}