C# 虛方法和抽象方法的區別


虛方法和抽象方法的區別:

(1)抽象方法是只有方法名稱,沒有方法體,即沒有方法的具體實現,子類必須重寫父類抽象方法才能實現具體功能;虛函數有方法名稱也也有方法體,但是子類可以覆蓋,也可不覆蓋。

(2)抽象方法是一種強制派生類覆蓋的方法,否則派生類將不能被實例化。

(3)抽象方法只能在抽象類中聲明,虛方法不是。

(4)派生類必須重寫抽象類中的抽象方法,虛方法則不必要。

虛方法:

1、virtual方法表示此方法可以被重寫, 也就是說這個方法具有多態.父類中的方法是通用方法,可以在子類中重寫以重新規定方法邏輯。
2、virtual方法可以直接使用,和普通方法一樣。
3、不是必須重寫的. 子類可以使用base.方法 的方式調用, 無論有沒有在子類使用override去重寫。
(virtual關鍵字只是明確標示此方法可以被重寫, 其實它和一般的方法沒有什么區別
【sealed關鍵字標示此方法不可以被重寫】)

抽象方法:

1、抽象方法沒有提供實現部分。

2、抽象方法只能在抽象類中聲明。

3、抽象方法是一種強制派生類覆蓋的方法,否則派生類將不能被實例化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM