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

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

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

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