先說一下本身對類的理解吧。類就是指將一系列具備一些共同特性的事物概括起來,按照不一樣的特性分爲不一樣的類。好比在現實世界中人是一類,動物是一類。植物 又是一類。但他們都是生命這一類的派生類。他們都繼承了生命類的一些特性。但他們各自又有一些不一樣的屬性。在計算機世界中也有這樣的類。類這一特性在面向 對象的語言中就有很好的體現。函數
我的理解C#中的抽象類是將某些類都具備的一些特性收集起來。而後再用這個抽象類來定義一些子類。固然這些子類能夠本身再擴充一些私有的屬性和方法。好比 正方形和長方形他們都具備的屬性是面積,周長等屬性。可是他們又有一些不一樣的屬性和方法,好比長方形有長和寬。正方形只有一個邊長。他們各自的面積和周長 的計算方法也不同。下面就舉例來講明。上代碼。。。spa
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();
}
}
}對象