和类的成员方法一样,我们也可以定义属性的重载、虚属性、抽象属性以及密封属性的概念。
与类和方法一样,属性的修饰也应符合下列规则:
属性的重载
●在派生类中使用修饰符的属性,表示对基类中的同名属性进行重载。
●在重载的声明中,属性的名称、类型、访问修饰符都应该与基类中被继承的属性一致。
●如果基类的属性只有一个属性访问器,重载后的属性也应只有一个。但如果基类的属性同时包含get和set属性访问器,重载后的属性可以只有一个,也可以同时有两个属性访问器。
注意:与方法重载不同的是,属性的重载声明实际上并没有声明新的属性,而只是为已有的虚属性提供访问器的具体实现。
虚属性
●使用virtual修饰符声明的属性为虚属性。
●虚属性的访问器,包括get访问器和set访问器,同样也是虚的。
抽象属性
●使用abstract修饰符声明的属性为抽象属性
●抽象属性的访问器也是虚的,而且没有提供访问器的具体实现。这就要求在非虚的派生类中,由派生类自己通过重载属性来提供对访问器的具体实现。
●abstract和override修饰符的同时使用,不但表示属性是抽象的,而且它重载了其类中的虚属性。这是属性的访问器也是抽象的。
●抽象属性只允许在抽象类中声明。
●除了同时使用abstract和override修饰符这种情况之外,static,virtual,override和abstract修饰符中任意两个不能再同时出现。
密封属性
●使用sealed修饰符声明的属性为密封属性。类的密封属性不允许在派生类中被继承。密封属性的访问器同样也是密封的。
●属性声明时如果有sealed修饰符,同时也必须要有override修饰符。
时间: 2024-08-18 03:23:33