在C#中,有两种机制可以通过子类重新定义或提供父类方法的新实现,这两种机制被称为方法重写和方法隐藏。现在根据方法重新实现的方式,我们可以区分它们。
以下是方法重写和方法隐藏之间的重要区别。
序号 | 关键字 | 方法重写 | 方法隐藏 |
---|---|---|---|
1 | 定义 | 方法重写是实现多态性的一种机制,其中父类和子类具有相同的方法,包括参数和签名,当使用子类对象调用它时,会调用子类中的实现。 | 另一方面,方法隐藏可以定义为一种技术,用户可以使用new关键字重新定义基类或父类的方法,从而隐藏基类对该特定方法的主要基本实现。 |
2 | 访问父类实现 | 在方法重写中,子类可以访问父类方法的实现。 | 在方法隐藏中,无法通过子类引用访问父类方法的实现。 |
3 | 修饰符使用 | 在方法重写中,使用override关键字。 | 在方法隐藏中,使用new关键字在子类中定义新的实现。 |
4 | 实现类型 | 在方法重写中,方法的实现类型为对象类型。 | 然而,在方法隐藏中,方法的实现类型为引用类型。 |
5 | 从父类到子类的引用 | 在方法重写中,当父类引用变量指向子类的对象时,它将调用子类中的重写方法。 | 另一方面,在方法隐藏中,当父类引用变量指向子类的对象时,它将调用父类中的隐藏方法。 |
6 | 用途 | 方法重写只重新定义方法的实现。 | 方法隐藏可以完全重新定义方法。 |
以上是C# 中方法重写和方法隐藏的区别的详细内容。更多信息请关注PHP中文网其他相关文章!