任务四 掌握从派生类中隐藏基类成员
上一节
下一节

有时我们并不希望某派生类的成员从基类继承,或者有时基类中的某些成员已经没有被继承的必要。C#提出了一个隐藏的概念,即通过new来实现隐藏基类的相应成员,从而帮助开发人员来解决这一问题。

![]()
本案例将创建一个代表人的基类Person和一个代表学生的派生类Student,在派生类中使用new关键字定义与基类相同的成员,从而隐藏了基类的相应成员。
![]()
(1)掌握在派生类中如何隐藏基类的同名成员。
(2)掌握在派生类中如何访问基类中被隐藏的同名成员。
![]()
![]() |
| 图6.5 项目Example6_3运行结果 |
(1)创建一个项目Example6_3,双击Program.cs进行编程。
(2)按Ctrl+F5快捷键编译并运行应用程序,输出结果如图6.5所示。
![]()
本案例的具体代码如下:
程序分析:
在派生类Student中,使用new修饰符定义数据成员name,这样派生类中name变量将隐藏从基类继承过来的name变量。使用new修饰符定义方法成员PrintPerson(),同样,派生类中PrintPerson()方法将隐藏从基类继承过来的PrintPerson()方法。

在派生类中使用关键字new定义与基类成员同名的成员,可以显式隐藏基类的相应成员,这样在派生类中或通过派生类对象调用的是派生类重写的数据成员或方法成员。若派生类中的成员和基类中的成员使用相同的名称、相同的参数和相同的类型等,但未使用new修饰符,则程序编译和运行时不会发生错误,但会发出警告。
头脑风暴:如何在“采访升级版”这个案例中实现构造函数?


