1. 程式人生 > 其它 >普通類,抽象類,兩者的區別,

普通類,抽象類,兩者的區別,

一.class普通類

1.類的定義:

類的訪問修飾符 修飾符 類名
{
類的成員
}

C#語言中建立的任何專案都有類的存在,通過類能很好地體現面嚮物件語言中封裝、繼承、多型的特性。

  • 類的訪問修飾符:用於設定對類的訪問限制,包括 public、internal 或者不寫,用 internal 或者不寫時代表只能在當前專案中訪問類;public 則代表可以在任何專案中訪問類。
  • 修飾符:修飾符是對類本身特點的描述,包括 abstract、sealed 和 static。abstract 是抽象的意思,使用它修飾符的類不能被例項化;sealed 修飾的類是密封類,不能 被繼承;static 修飾的類是靜態類,不能被例項化。
  • 類名:類名用於描述類的功能,因此在定義類名時最好是具有實際意義,這樣方便使用者理解類中描述的內容。在同一個名稱空間下類名必須是唯一的。
  • 類的成員:在類中能定義的元素,主要包括欄位、屬性、方法。

二.抽象類或方法

  • abstract 關鍵字代表的是抽象的,使用該關鍵字能修飾類和方法,修飾的方法被稱為抽象方法、修飾的類被稱為抽象類。
  • abstract 關鍵字只能用於普通方法,不能用於 static(靜態) 方法或者構造方法中。

1.抽象方法的定義

訪問修飾符 abstract 方法返回值型別 方法名(引數列表);

2.抽象方法的 3 個特徵:

  1. 抽象方法只有宣告沒有實現(沒有方法體)
  2. 抽象方法必須存在於抽象類中
  3. 子類重寫父類時,必須重寫父類所有的抽象方法

注意:抽象方法不能使用 private 修飾,因為抽象方法必須被子類重寫,而如果使用了 private 宣告,則子類是無法重寫的。

1.抽象類的定義:
訪問修飾符 abstract class 類名
{
//類成員
}
2.抽象類使用規則:

  1. 抽象類和抽象方法都要使用 abstract 關鍵字宣告。
  2. 如果一個方法被宣告為抽象的,那麼這個類也必須宣告為抽象的。而一個抽象類中,可以有 0~n 個抽象方法,以及 0~n 個具體方法。
  3. 抽象類不能例項化,也就是不能使用 new 關鍵字建立物件。

三.抽象類與普通類區別

1.關鍵字:抽象類宣告時需要abstract 關鍵字來定義 ,而普通類則可以是public private等。

2.方法:抽象類裡的抽象方法裡不能有方法的主體,只能是抽象方法的宣告,而普通類裡的方法裡可以有主體。

3.例項化:抽象類是不能被例項化的,也就是不能用new呼叫建構函式建立物件,而普通類可以通過new關鍵字進行例項化。

4.訪問許可權:抽象類的訪問許可權限於public和protected,因為抽象類方法是需要繼承之後讓子類去實現的,private修飾的方法不能被重寫,抽象方法的目的就是為了繼承以後再子類裡重寫。而普通類的訪問許可權沒有限制,都可以修飾。

5.繼承:抽象類被繼承時,子類必須實現它的所有方法,如果子類沒有實現父類的抽象方法,則必須將子類也定義成抽象類。而普通類被繼承時,不需要實現它的所有方法。