C#中方法重写和方法隐藏的区别


在C#中,子类可以通过两种机制重新定义或提供父类方法的新实现,这两种机制被称为方法重写和方法隐藏。根据方法重新实现的方式,我们可以区分它们。

以下是方法重写和方法隐藏之间的一些重要区别。

序号要点方法重写方法隐藏
1定义方法重写是一种实现多态性的机制,其中超类和子类具有相同的方法,包括参数和签名,当使用子类对象调用它时,将调用子类中的实现。另一方面,方法隐藏可以定义为一种技术,用户可以使用`new`关键字重新定义基类或父类的方法,这会导致隐藏基类为该特定方法提供的基本实现。
2父类实现的访问在方法重写中,子类可以访问父类方法的实现。在方法隐藏的情况下,无法通过子类引用访问父类方法的实现。
3使用的修饰符对于方法重写,使用`override`关键字。在方法隐藏的情况下,使用`new`关键字在子类中定义新的实现。
4实现类型在方法重写中,方法的实现类型为对象类型。然而,另一方面,在方法隐藏中,方法的实现类型为引用类型。
5父类到子类引用在方法重写中,当父类引用变量指向子类对象时,它将调用子类中的重写方法。另一方面,在方法隐藏中,当父类引用变量指向子类对象时,它将调用父类中的隐藏方法。
6用法方法重写只重新定义方法的实现。方法隐藏可以完全重新定义方法。

更新于:2020年6月9日

3K+ 浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.