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