1. 程式人生 > >C# 中普通類、抽象類、介面之間的區別

C# 中普通類、抽象類、介面之間的區別

一、普通類和抽象類之間的異同
1.都可以被繼承
2.抽象類不能被例項化,只是用來繼承的。普通類可以例項化
3.抽象方法只有含方法宣告而沒有方法體且必須包含在抽象類裡面
4.子類繼承抽象類必須實現抽象類中的抽象方法除非子類也是抽象類
5.抽象類中可以包含抽象方法也可以包含例項方法

二、抽象類和介面之間的異同
相同點:
1.都可以被繼承
2.都可以有方法的宣告
3.都不可以被例項化
4.子類必須實現基類的方法除非子類是抽象類

不同點:
1.抽象類屬於多繼承介面屬於單繼承
2.抽象類可以包含例項方法而介面不能
3.介面支援回撥抽象類不能
4.子類實現抽象基類方法必須用override關鍵字而實現介面方法則不用override關鍵字

三、什麼是虛方法
1.用關鍵字virtual宣告的方法叫虛方法
2.虛方法可以只是表明可以被重寫
3.虛方法可以被重新也可以不被重寫
4.虛方法包含方法宣告和方法體
5.靜態方法不能宣告為虛方法,也不能被重寫