
关于base关键字,下列使用方法错误的有()A.在子类中不能使用base关键字调用父类的protected方法 B.在子类中不能使用base关键字访问父类的public属性 C.在子类中不能使用base关键字调用父类的构造函数 D.在子类中不能使用base关键字访问父类的private字段
在C#中,base关键字用于在子类中访问父类成员,但受访问修饰符限制。错误的选项是A、B、C,正确的只有D。
A选项错误:子类可以用base调用父类构造函数。如代码示例中Son类构造函数通过base(age, name)显式调用Father类的构造函数。若不手动调用,系统会默认调用父类无参构造函数。
B选项错误:base可访问父类public属性。文档明确说明,父类public或protected成员可通过base在子类中访问。例如父类public int Age属性,子类可用base.Age访问。
C选项错误:base能调用父类protected方法。protected成员允许子类访问,这是其核心特性。如父类protected void Method(),子类可通过base.Method()调用。
D选项正确:base无法访问父类private字段。private成员仅限父类内部访问,子类即使通过base也无法直接访问,需通过父类public/protected方法间接获取。
总结:base的使用需遵循访问权限规则:可访问public/protected成员、调用构造函数,不可访问private成员。记住这一原则,就能准确判断base关键字的用法正误。