和類的成員方法一樣,我們也可以定義屬性的重載、虛屬性、抽象屬性以及密封屬性的概念。
與類和方法一樣,屬性的修飾也應符合下列規則:
屬性的重載
●在派生類中使用修飾符的屬性,表示對基類中的同名屬性進行重載。
●在重載的聲明中,屬性的名稱、類型、訪問修飾符都應該與基類中被繼承的屬性一致。
●如果基類的屬性只有一個屬性訪問器,重載後的屬性也應只有一個。但如果基類的屬性同時包含get和set屬性訪問器,重載後的屬性可以只有一個,也可以同時有兩個屬性訪問器。
注意:與方法重載不同的是,屬性的重載聲明實際上並沒有聲明新的屬性,而只是為已有的虛屬性提供訪問器的具體實現。
虛屬性
●使用virtual修飾符聲明的屬性為虛屬性。
●虛屬性的訪問器,包括get訪問器和set訪問器,同樣也是虛的。
抽象屬性
●使用abstract修飾符聲明的屬性為抽象屬性
●抽象屬性的訪問器也是虛的,而且沒有提供訪問器的具體實現。這就要求在非虛的派生類中,由派生類自己通過重載屬性來提供對訪問器的具體實現。
●abstract和override修飾符的同時使用,不但表示屬性是抽象的,而且它重載了其類中的虛屬性。這是屬性的訪問器也是抽象的。
●抽象屬性只允許在抽象類中聲明。
●除了同時使用abstract和override修飾符這種情況之外,static,virtual,override和abstract修飾符中任意兩個不能再同時出現。
密封屬性
●使用sealed修飾符聲明的屬性為密封屬性。類的密封屬性不允許在派生類中被繼承。密封屬性的訪問器同樣也是密封的。
●屬性聲明時如果有sealed修飾符,同時也必須要有override修飾符。