抽象類那點事(一步步案例分析,為什麼需要它)

2022-07-17 04:51:12 字數 3557 閱讀 6161

**於:

抽象類abstract

抽象方法的類要宣告為抽象類

建構函式和靜態方法不能宣告為抽象

多型性是乙個虛方法,可以重寫這個方法,實現同乙個方法不同的表現形式

對於抽象方法的重寫,是說的對於這個方法的派生類的實現。

對於抽象類和介面的方法都需要實現。

抽象方法是無法寫方法體的

抽象類可以寫 實現的方法

介面不可以寫 實現的方法

案例1:

abstract

class employee//

雇員抽象類

public

string lastname

public

string ssn

public employee(string first, string last, string ssn)

public

abstract

decimal earning();

public

virtual

int time(int times)//

抽象類可以寫虛方法

public

override

string tostring()

lastname: ssn:

", firstname, lastname, ssn);}}

public

class salariedemployee : employee//

薪水雇員類

public

decimal weeksalay

set}

public

override

decimal earning()

public

override

string tostring()//

如果不重寫tostring方法那麼繼承的是抽象類的方法

weeksalay:

",base.tostring(), weeksalay);}}

class houremployee : employee//

小時工類

public

decimal wage

set}

public

int hour

set}

public

override

decimal earning()

else

return wage;

}public

override

string tostring()

hourwage: hourtimes:,wage:

", base.tostring(), wage, hour, wage);//

這裡繼承抽象類的tostring方法

}}class basehe_employee : houremployee//

間接繼承抽象類

public

decimal rate

set

}public

decimal salay

set

}public

override

decimal earning()

public

override

string tostring()

rate:,salay:

", base.tostring(), rate, salay);//

這裡繼承抽象類的tostring方法

}}class test}}

**於:

抽象類abstract

抽象方法的類要宣告為抽象類

建構函式和靜態方法不能宣告為抽象

多型性是乙個虛方法,可以重寫這個方法,實現同乙個方法不同的表現形式

對於抽象方法的重寫,是說的對於這個方法的派生類的實現。

對於抽象類和介面的方法都需要實現。

抽象方法是無法寫方法體的

抽象類可以寫 實現的方法

介面不可以寫 實現的方法

案例1:

abstract

class employee//

雇員抽象類

public

string lastname

public

string ssn

public employee(string first, string last, string ssn)

public

abstract

decimal earning();

public

virtual

int time(int times)//

抽象類可以寫虛方法

public

override

string tostring()

lastname: ssn:

", firstname, lastname, ssn);}}

public

class salariedemployee : employee//

薪水雇員類

public

decimal weeksalay

set}

public

override

decimal earning()

public

override

string tostring()//

如果不重寫tostring方法那麼繼承的是抽象類的方法

weeksalay:

",base.tostring(), weeksalay);}}

class houremployee : employee//

小時工類

public

decimal wage

set}

public

int hour

set}

public

override

decimal earning()

else

return wage;

}public

override

string tostring()

hourwage: hourtimes:,wage:

", base.tostring(), wage, hour, wage);//

這裡繼承抽象類的tostring方法

}}class basehe_employee : houremployee//

間接繼承抽象類

public

decimal rate

set

}public

decimal salay

set

}public

override

decimal earning()

public

override

string tostring()

rate:,salay:

", base.tostring(), rate, salay);//

這裡繼承抽象類的tostring方法

}}class test}}

一步步帶你配置IIS(包括錯誤分析)

今天趁著工作中的問題一下子來解決iis配置 發布 點選vs發布 第一步 新建配置檔案 我取名為website 第二步 選擇發布方法並且選擇把檔案發布到 比喻在d盤建立乙個資料夾website那麼可以選擇檔案發布d website 然後點選發布 完成了專案的發布 下面是重要步驟截圖 配置iis 第一步...

一步步點亮led之軟硬體分析

剩下的4顆led燈 正極接 3.3v,負極接soc的乙個引腳 d22 gpj0 3 d23 gpj0 4 d24 gpj0 5 d25 pwmtout1 gpd0 1 因此,為了點亮led,我們可以讓那些對應的引腳為低電平。下面開始分析軟體方面的問題。如何操控這些引腳為低電平?gpio是晶元的引腳,...

一步步學演算法 演算法分析 6 Floyd演算法

floyd 演算法floyd演算法又稱為 弗洛伊德演算法 插點法,是一種用於尋找給定的 加權圖中頂點間 最短路徑 的演算法。該 演算法名稱以創始人之一 1978年圖靈獎獲得者 史丹福大學電腦科學系教授 羅伯特 弗洛伊德 命名。正如我們所知道的,floyd演算法用於求最短路徑。floyd演算法可以說是...