C#中虛擬方法和抽象方法的區別,一起研究研究?

前言:在前面的文章中,我們已經對虛方法抽象方法有了瞭解,那麼本博文將闡述它們之間的區別,一起來看看吧。

一.在定義上:

虛方法用關鍵字virtual來進行聲明,不允許再有static,abstract,或override修飾符

訪問修飾符 virtual 函數返回類型 函數名(參數表) {函數體}

抽象方法用關鍵字abstract來進行聲明,只在抽象類中定義,方法修飾符不能使用private, virtual, static.

 訪問修飾符 abstract class abstract_name{}

二.在實現上:

虛方法 抽象方法
虛擬可以直接實例化 抽象不可以實例化
虛方法可以在任何非密封類中聲明 抽象方法只能在抽象類中聲明
虛方法可以在派生類中重寫也可以不重寫 抽象方法必須在派生類進行重寫
虛方法有實現部分 抽象方法沒有實現部分
虛方法不能是私有的 抽象方法是私有的、受保護的

三.在作用上:

在面向對象方法中,抽象類主要用來進行類型隱藏。構造出一個固定的一組行爲的抽象描述;
當在基類中進行虛方法的定義以後,在派生類中可以對其方法進行調用,而且可以通過重寫來改變其中實現的功能來實現自己的一些功能;

四.使用場景:

當所有子類都要實現某一功能時,使用虛擬,將這些功能包裝在基類中,在派生類中用關鍵字base引用;

當功能不相關時,使用抽象類;


若有忽略不足之處希望大家及時提出!😃😦😦😦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章