[.net 面向對象編程基礎] (8) 基礎中的基礎——修飾符

[.net 面向對象編程基礎] (8) 基礎中的基礎——修飾符html

 

    在進入C#面向對象核心以前,咱們須要先對修飾符有所瞭解,其實咱們在前面說到變量和常量的時候,已經使用了修飾符,而且說明了變量和常量的修改符。編程

   首先 修飾符是什麼?ide

    修飾符用於限定類型以及類型成員的申明函數

    從定義能夠看出按功能分爲兩類:訪問修飾符和聲明修飾符編碼

1.訪問修飾符 (5個)spa

訪問修飾符.net

說明htm

public對象

公有訪問。不受任何限制。blog

private

私有訪問。只限於本類成員訪問,子類,實例都不能訪問。

protected

保護訪問。只限於本類和子類訪問,實例不能訪問。

internal

內部訪問。只限於本項目內訪問,其餘不能訪問。

protected internal

內部保護訪問。只限於本項目或是子類訪問,其餘不能訪問

    C#成員類型的可修飾及默認修飾符以下表:

成員類型

默認修飾符

可被修飾符

enum

public

none

class

private

publicprotectedinternalprivate 
protected internal

interface

public

none

struct

private

publicinternalprivate

2.聲明修飾符 (10個)

Partial:在整個同一程序集中定義分部類和結構

Static: 聲明屬於類型自己而不是屬於特定對象的成員。

Abstract:抽象類,只能是其餘類的基類。類中的方法只聲明不實現,方法的實如今他的派生類中完成。

Sealed:指定類不能被繼承。

Virtual:用於修飾方法、屬性、索引器或事件聲明,而且容許在派生類中重寫這些對象

Override:提供從基類繼承的成員的新實現

New:做修飾符,隱藏從基類成員繼承的成員,在不使用 new 修飾符的狀況下隱藏成員是容許的,但會生成警告。做運算符,用於建立對象和調用構造函數。

Extern:用於聲明在外部實現的方法。 extern 修飾符的常見用法是在使用 Interop 服務調入非託管代碼時與 DllImport 特性一塊兒使用。 在這種狀況下,還必須將方法聲明爲 static

Readonly:修飾字段,表示該字段爲只讀字段。

注意:readonly修飾引用類型時因爲操做不當可能修改該只讀對象狀態。例如:Readonly List< Person> persons=.;

咱們可能在某些地方對persons 進行了修改:persons.add(new Person());

Const:修飾字段,表示該字段爲只讀字段。而且在編譯時必須可以明確知道該字段的值,其值是硬編碼到程序中去的,修改了該類型成員後須要從新編譯才能使修改生效。

readonly是運行時只讀,內容在運行時肯定,因此修改了readonly類型成員後無需從新編譯便可生效。 

Readonly不能修飾局部變量,const能夠。

 

要點:

  Virtual,override和new 的區別

virtual  用於父類中,聲明某方法能夠重寫,該方法不能是static

override(覆蓋繼承) 用於子類中,重寫父類中用virtual/override/abstract關鍵字聲明的方法;

new(隱藏繼承)  用於子類中,可修飾父類中有或無virtual聲明的方法;

  若是在父類中有與父類同名同參的方法時,C#會隱式在子類前添加一個new關鍵字。 

【區別】overridenew

  當將一個子類實例賦值給父類實例,在子類實例與父類實例中分別調用該方法時:使用override修飾的都將調用子類方法,而使用new修飾的會分別調用子類方法和父類方法。

  NewOverride這兩個關鍵字是互斥的。不能夠同時使用。  

【區別】virtualabstract

  virtual:用於父類中聲明該方法可被重寫。

  abstract:只能用在抽象類中聲明抽象方法,自己不能實現任何功能(所以必須在子類中override),不能實例化。

  二者除了在子類中一樣能夠用override重寫這個相同點以外,沒有其餘關係。 

 

==============================================================================================

返回目錄

 <若是對你有幫助,記得點一下推薦哦,有不明白的地方或寫的不對的地方,請多交流>

============================================================================================== 

相關文章
相關標籤/搜索