C# 类教程-继承:隐藏(new)

  • C# 类教程-类
  • C# 类教程-类成员:字段(域)、属性、索引
  • C# 类教程-类成员:方法、事件
  • C# 类教程-类成员:运算符重载与索引器
  • C# 类教程-类成员:构造函数和析构函数
  • C# 类教程-类成员:嵌套类型
  • C# 类教程-访问修饰符与可访问性级别
  • C# 类教程-继承
  • C# 类教程-继承:方法重载
  • C# 类教程-继承:隐藏(new)
  • C# 类教程-继承:重写(virtual 与 override)
  • C# 类教程-继承:抽象(abstract)
  • C# 类教程-多态性

我们推荐您阅读同名文章:new、virtual、override、abstract 等-隐藏,其总结性更强。

前面讲了重载和重写,下面谈谈隐藏,隐藏也是发生在基类与派生类之间的。

示例

public class BaseClass
{
    public string GetString()
    {
        return "这是基类的一个方法。";
    }
}

public class DerivedClass : BaseClass
{
    public new string GetString()
    {
        return "这是隐藏了基类 GetString() 的方法。";
    }
}

可以看出隐藏使用的是关键字 new。目前,我们已经讲了:重载、重写、隐藏,但还看不出重写与隐藏的应用区别,我们将在类的多态性中讲到。下表列出了重载、重写、隐藏的显著特征区别:

重载 重写 隐藏
同一作用域。 基类与派生类之间。 基类与派生类之间。
方法名称相同,但参数个数或类型必须不同。 方法名称、参数个数和类型都必须相同。 方法名称、参数个数和类型都必须相同。
不需要修饰符。 基类中用 virtual,派生类中用 override。 基类中有无 virtual 均可,派生类中用 new。

 

  • C# 类教程-类
  • C# 类教程-类成员:字段(域)、属性、索引
  • C# 类教程-类成员:方法、事件
  • C# 类教程-类成员:运算符重载与索引器
  • C# 类教程-类成员:构造函数和析构函数
  • C# 类教程-类成员:嵌套类型
  • C# 类教程-访问修饰符与可访问性级别
  • C# 类教程-继承
  • C# 类教程-继承:方法重载
  • C# 类教程-继承:隐藏(new)
  • C# 类教程-继承:重写(virtual 与 override)
  • C# 类教程-继承:抽象(abstract)
  • C# 类教程-多态性

你可能感兴趣的