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