C# 中方法覆盖和方法隐藏之间的区别

csharpserver side programmingprogramming

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

以下是方法覆盖和方法隐藏之间的重要区别。

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

相关文章