c#的override和new的区别
时间: 2023-04-21 15:02:01 浏览: 119
C#中的override和new都是用来实现方法重写的关键字,但它们的作用有所不同。
override关键字用于子类中重写父类中已有的虚方法,实现多态性。重写的方法必须与父类中的方法具有相同的名称、返回类型和参数列表。在运行时,调用该方法时会根据对象的实际类型来确定调用哪个方法。
new关键字用于在子类中定义一个与父类中同名的新方法,该方法与父类中的方法没有任何关系。在运行时,调用该方法时会根据引用类型来确定调用哪个方法。
因此,override关键字实现了方法的多态性,而new关键字则是在子类中定义了一个新的方法。
相关问题
C#override
在C#中,override关键字用于在子类中重写父类中的方法、属性、索引器或事件的抽象或虚拟实现。重写的方法必须具有与被重写方法相同的签名,并且必须使用override关键字进行标识。重写方法可以提供从基类继承的成员的新实现,通过override声明的重写方法称为基方法。重写方法不能使用new、static、virtual修饰符进行修改,且重写属性的声明必须与继承的属性具有相同的访问修饰符、类型和名称。父类中的方法必须使用virtual关键字进行修饰,才能被子类重写。如果父类方法没有使用virtual关键字,在子类中重写父类方法时会导致编译错误。因此,在子类中对父类进行重写时,需要使用override关键字进行标识。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [【C#学习笔记(一)】override关键字详解(转载)](https://blog.csdn.net/sallyyellow/article/details/131719300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [C#关键字之override详解](https://blog.csdn.net/yiyelanxin/article/details/71711383)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [C# 重写(override)](https://blog.csdn.net/qq_34924887/article/details/89394032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
c#override
在C#中,override关键字用于在子类中重写父类中的方法、属性、索引器或事件的抽象或虚拟实现。重写的方法必须具有与被重写方法相同的签名,并且必须使用override关键字进行标识。重写方法可以提供从基类继承的成员的新实现,被重写的方法称为基方法。重写方法不能使用new、static、virtual修饰符进行修改,且重写属性的声明必须与继承的属性具有相同的访问修饰符、类型和名称。父类中的方法必须使用virtual关键字进行修饰,才能被子类重写。如果父类方法没有使用virtual关键字,在子类中重写父类方法时会导致编译错误。因此,重写方法必须具有父子类关系,并且父类中的方法必须使用virtual关键字进行修饰。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [【C#学习笔记(一)】override关键字详解(转载)](https://blog.csdn.net/sallyyellow/article/details/131719300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [C#关键字之override详解](https://blog.csdn.net/yiyelanxin/article/details/71711383)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [C# 重写(override)](https://blog.csdn.net/qq_34924887/article/details/89394032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文