C#中方法重写和方法隐藏的区别
在C#中,子类可以通过两种机制重新定义或提供父类方法的新实现,这两种机制被称为方法重写和方法隐藏。根据方法重新实现的方式,我们可以区分它们。
以下是方法重写和方法隐藏之间的一些重要区别。
| 序号 | 要点 | 方法重写 | 方法隐藏 |
|---|---|---|---|
| 1 | 定义 | 方法重写是一种实现多态性的机制,其中超类和子类具有相同的方法,包括参数和签名,当使用子类对象调用它时,将调用子类中的实现。 | 另一方面,方法隐藏可以定义为一种技术,用户可以使用`new`关键字重新定义基类或父类的方法,这会导致隐藏基类为该特定方法提供的基本实现。 |
| 2 | 父类实现的访问 | 在方法重写中,子类可以访问父类方法的实现。 | 在方法隐藏的情况下,无法通过子类引用访问父类方法的实现。 |
| 3 | 使用的修饰符 | 对于方法重写,使用`override`关键字。 | 在方法隐藏的情况下,使用`new`关键字在子类中定义新的实现。 |
| 4 | 实现类型 | 在方法重写中,方法的实现类型为对象类型。 | 然而,另一方面,在方法隐藏中,方法的实现类型为引用类型。 |
| 5 | 父类到子类引用 | 在方法重写中,当父类引用变量指向子类对象时,它将调用子类中的重写方法。 | 另一方面,在方法隐藏中,当父类引用变量指向子类对象时,它将调用父类中的隐藏方法。 |
| 6 | 用法 | 方法重写只重新定义方法的实现。 | 方法隐藏可以完全重新定义方法。 |
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP