虛方法,抽象類 ,介面

2022-03-14 17:42:59 字數 1343 閱讀 4445

抽象類不能被例項化;

只能宣告方法,不能實現,只能有他的

是乙個隱式的虛方法

抽象類裡的方法不能是私有的(如果抽象是私有的,那麼他的子類訪問不了它)

在抽象方法中使用static和virtual修飾符是錯誤的

在靜態屬性中使用abstract是錯誤的

abstract方法只能在抽象類中宣告 而virtual則不是

abstract方法必須在派生類中重寫,而virtual則不要

abstract不是宣告方法實體,而虛方法則可以

包含abstract方法的類不能被例項化,而包含virtual可以

介面定義了乙個可由類和結構實現的協定。介面包含方法、屬性、事件和索引器。介面不提供它所定義的成員的實現 ——他僅指實現該介面或結構必須提供的成員。

介面是抽象類的特例;

乙個介面宣告可以宣告零個或多個成員。

介面的成員必須是方法、屬性、或索引器

所有的介面成員都隱式的具有public訪問屬性

介面不能包含常量、字段、運算子、例項建構函式、析構函式或型別,也不能包含任何種類的靜態成員。

介面成員宣告中包含任何修飾符都屬於編譯時錯誤。具體來說,不能使用修飾符abstract、public 、protected、internal、private、virtual、override或static 來宣告介面成員。

所有介面第乙個字元是大寫的i(csharp編碼規範)

類是對物件的抽象,可以吧抽象類理解為把類當作物件,抽象成的類。介面只有乙個行為的規範或規定。

介面基本上不具備繼承的任何具體特點,它僅僅承諾了能夠呼叫的方法;

乙個類一次可以實現若干個介面,但只能擴充套件乙個父類

抽象類實現了oop中的乙個原則,把可變的與不用可變的分離。抽象類和介面就是定義為不可變的,而吧可變的由子類去實現。

好的介面定義應該具有專一功能性,而不是多功能的,負責造成介面汙染。如果乙個類只是實現了這個介面中的乙個功能,而不的不去實現介面中的其它方法,就叫介面汙染

如果抽象類實現介面,則可以把介面中方法對映到抽象類中作為抽象方法而不必實現,而在抽象類的子類中實現介面中的方法。

抽象類用於部分實現乙個類,在由使用者按需求對其進行不同的擴充套件和完善;介面只是定義乙個行為的規範或規定。

抽象類在元件的所有實現間提供通用的已實現功能;介面建立在大範圍全異物件間使用的功能。

抽象類主要用於關係密切的物件;而介面適合為不相干的類提供通用功能。

抽象類主要用於設計大的功能單元;而介面用於設計小而簡練的功能塊。

繼承 介面 虛方法 抽象類

把公有的資料或方法放在父類中,在子類中放不同的屬性,子類繼承父類 例子 class diren class boss diren boss boss new boss boss.ai 描述 boss類繼承diren類,所以能呼叫diren類中的ai方法 如果方法或字段是私有的,則不能呼叫 diren...

介面 抽象類 抽象方法 虛方法 的區別

介面 抽象類 抽象方法 虛方法 的區別 介面 抽象類 抽象方法 虛方法 這四個名詞時非常容易混淆的 首先說一下介面 與抽象類 的異同 相同點 1.他們都不能例項化自己,也就是說都是用來被繼承的。2.抽象類中的抽象方法和介面方法一樣,都不能有方法體 不同點 1.抽象類裡可以有欄位,介面中不能有欄位.2...

介面 抽象類 抽象方法 虛方法 的區別

首先說一下介面 與抽象類 的異同 相同點 1.他們都不能例項化自己,也就是說都是用來被繼承的。2.抽象類中的抽象方法和介面方法一樣,都不能有方法體 不同點 1.抽象類裡可以有欄位,介面中也可以有欄位.2.抽象類中的普通方法可以有方法體,而介面方法沒有方法體。3.介面中的方法不能有訪問修飾符,抽象類中...