1、sealed
密封類不能被繼承,密封方法可以重寫基類中的方法,但其本身不能在任何派生類(子類)中
進一步重寫。當應用于屬性或者方法時,sealed 修飾符必須始終和override一同使用。
通俗的說:密封類不會有子類。
2、new
new關鍵字用于顯式隱藏從基類繼承的成員。在使用子類時調用的方法是new關鍵字新定義的方法,而不是基類(父類)的方法。
3、virtual
virtual 關鍵字用于修改方法或者屬性的聲明,此時,方法或者屬性被稱為虛成員,
虛成員的實現可以由派生類(子類)中的重寫成員更改。
在調用虛方法時,將為重寫成員檢查該對象的運行時類型。將調用大部分派生類(子類)中
的該重寫成員,,如果沒有派生類(子類)重寫該成員,則它可能是原始成員。
說明:
1、在靜態屬性使用virtual修飾符是錯誤的。
2、通過使用override修飾符的屬性聲明,在派生類(子類)中重寫虛擬繼承屬性。
4、abstract
抽象類 abstract可以修飾 類、 方法、屬性、索引器、事件。
在類中使用abstract修飾符,表示該類只能是其他類的基類(父類)。標記為抽象
或者包含抽象類中的成員必須通過從抽象類派生類(子類)來實現。
抽象類特征:
1、抽象類不能進行實例化
2、抽象類可以包含抽象方法和抽象訪問器
3、不能用sealed修飾符修改抽象類,它倆可以理解為互逆的關系。
4、從抽象類派生的非抽象類必須包含繼承的所有抽象方法和抽象訪問器的實現。
5、在方法或屬性聲明中使用abstract修飾符表示該方法或者屬性不包含實現。
抽象方法的特性:
1、抽象方法是隱式的virtual方法。
2、只允許在抽象類中聲明抽象方法。
3、抽象方法不提供實際的實現,例如:public abstract void play();
4、實現由overriding 方法提供,它是非抽象的成員。
5、抽象方法不能使用 static或 virtual修飾符。
6、在靜態屬性上使用abstract修飾符是錯誤的。
7、在派生類(子類),通過使用override修飾符的屬性聲明可以重寫抽象的繼承屬性。
5、override
使用override修飾符來修改方法、屬性、索引器或者事件,主要是提供派生類對基類方法
的新實現。從而覆蓋abstract、virtual兩種關鍵字修飾的成員。
由重寫聲明重寫的方法稱為重寫基方法。重寫基方法必須與重寫方法具有相同的簽名。
說明:
1、重寫基方法必須虛擬的、抽象的或者重寫的,不能重寫非虛方法或者靜態方法。
2、不能使用 new static、virtual和abstract修飾符修改重寫方法。
3、重寫屬性聲明必須指定與繼承屬性完全相同的訪問修飾符、類型和名稱,并且
重寫屬性必須是虛擬的、抽象的或者重寫的。