基于C#的抽象類別詳解
抽象類,有3個特點(diǎn):
第1個,不能被實(shí)例化。
第2個,類中的抽象方法在繼承的子類中必須重寫。
第3個,類一旦有抽象方法出現(xiàn),那這個類必須定義為抽象類。
現(xiàn)實(shí)開發(fā)中,發(fā)現(xiàn)有共同的代碼,可以把這些共同的代碼放在一個抽象類中。舉個例子,計算四邊形的周長。
矩形,長方形,正方形:

class Rectangle
{
private double _A;
public double A
{
get { return _A; }
set { _A = value; }
}
private double _B;
public double B
{
get { return _B; }
set { _B = value; }
}
public Rectangle()
{
}
public Rectangle(double a, double b)
{
this._A = a;
this._B = b;
}
public double Perimeter()
{
return 2 * (_A + _B);
}
}
長斜方形,長菱形:

class Rhomboid
{
private double _A;
public double A
{
get { return _A; }
set { _A = value; }
}
private double _B;
public double B
{
get { return _B; }
set { _B = value; }
}
public Rhomboid()
{
}
public Rhomboid(double a,double b)
{
this._A = a;
this._B = b;
}
public double Perimeter()
{
return 2 * (_A + _B);
}
}
梯形,不等邊四邊形:

class Trapezoid
{
private double _A;
public double A
{
get { return _A; }
set { _A = value; }
}
private double _B;
public double B
{
get { return _B; }
set { _B = value; }
}
private double _C;
public double C
{
get { return _C; }
set { _C = value; }
}
private double _D;
public double D
{
get { return _D; }
set { _D = value; }
}
public Trapezoid()
{
}
public Trapezoid(double a,double b,double c,double d)
{
this._A = a;
this._B = b;
this._C = c;
this._D = d;
}
public double Perimeter()
{
return _A + _B + _C + _D;
}
}
從上面三個類別中,你均可以看到有一個方法,Perimeter()是計算四邊形的周長。
經(jīng)根博文開頭所言,你可以把這個方法抽出來,放在一個抽象類中,統(tǒng)一接口:

public abstract class Quadrilateral
{
//周長
public abstract double Perimeter();
}
把方法寫成抽象方法之后,每個類需要繼承此抽象類,并需要重寫 override抽象的方法。



下面驗證一下代碼,如需要計算一個不規(guī)則的四邊形的周長,那就是4條邊相加:

在控制臺運(yùn)行:

以上這篇基于C#的抽象類別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)航班預(yù)訂系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)航班預(yù)訂系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
C#調(diào)用Windows的API實(shí)現(xiàn)窗體動畫
在VF、VB、PB的應(yīng)用中,有些無法通過語言工具本身來完成的或者做得不理想的功能,我們會考慮通過Windows的API來完成。本文就來通過調(diào)用Windows的API實(shí)現(xiàn)窗體動畫,感興趣的可以嘗試一下2022-11-11
用C#在本地創(chuàng)建一個Windows帳戶(DOS命令)
用C#在本地創(chuàng)建一個Windows帳戶(DOS命令)...2007-03-03
詳解如何實(shí)現(xiàn)C#和Python間實(shí)時視頻數(shù)據(jù)交互
我們在做RTSP|RTMP播放的時候,遇到好多開發(fā)者,他們的視覺算法大多運(yùn)行在python下,需要高效率的實(shí)現(xiàn)C#和Python的視頻數(shù)據(jù)交互,本文給大家總結(jié)了一些常用的方法,感興趣的小伙伴跟著小編一起來看看吧2024-10-10
利用C#實(shí)現(xiàn)將小數(shù)值四舍五入為整數(shù)
在項目的開發(fā)中,遇到一些除法計算內(nèi)容會產(chǎn)生小數(shù)值,但是又需要根據(jù)項目的實(shí)際情況將這些小數(shù)內(nèi)容化為整數(shù),所以本文為大家整理了C#實(shí)現(xiàn)將小數(shù)值四舍五入為整數(shù)的方法,希望對大家有所幫助2023-07-07
DevExpress實(shí)現(xiàn)禁用TreeListNode CheckBox的方法
這篇文章主要介紹了DevExpress實(shí)現(xiàn)禁用TreeListNode CheckBox的方法,在項目開發(fā)中有應(yīng)用價值,需要的朋友可以參考下2014-08-08
c# 兩個數(shù)組比較,將重復(fù)部分去掉,返回不重復(fù)部分的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猚# 兩個數(shù)組比較,將重復(fù)部分去掉,返回不重復(fù)部分的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12

