C# 类教程-继承:隐藏(new)
示例
1: public class BaseClass
2: {
3: public string GetString()
4: {
5: return "这是基类的一个方法。";
6: }
7: }
8:
9: public class DerivedClass : BaseClass
10: {
11: public new string GetString()
12: {
13: return "这是隐藏了基类 GetString() 的方法。";
14: }
15: }
可以看出隐藏使用的是关键字 new。目前,我们已经讲了:重载、重写、隐藏,但还看不出重写与隐藏的应用区别,我们将在类的多态性中讲到。下表列出了重载、重写、隐藏的显著特征区别:
重载 | 重写 | 隐藏 |
---|---|---|
同一作用域。 | 基类与派生类之间。 | 基类与派生类之间。 |
方法名称相同,但参数个数或类型必须不同。 | 方法名称、参数个数和类型都必须相同。 | 方法名称、参数个数和类型都必须相同。 |
不需要修饰符。 | 基类中用 virtual,派生类中用 override。 | 基类中有无 virtual 均可,派生类中用 new。 |