override c#
时间: 2023-12-09 09:06:56 浏览: 154
在C#中,override关键字用于表示一个方法是在父类中被重写的。当子类继承自父类并且需要实现一个与父类中的方法具有相同名称和签名的方法时,可以使用override关键字来重写父类中的方法。使用override关键字的方法必须具有与父类中的方法相同的返回类型和参数列表。重写方法允许在子类中提供自定义的实现,以替代父类中的默认实现。
在给定的示例中,ChildOne和ChildTwo类分别重写了Parent类中的虚方法G()。在Main方法中,通过调用Parent类的引用变量childOne和childTwo的G()方法,实现了动态绑定和多态性。这意味着根据所引用的具体对象类型,将调用相应子类的重写方法。因此,输出将是"ChildOne.G()"和"ChildTwo.G()"。
另一方面,示例中,B类使用new关键字覆盖了父类A的Print()方法。这样做是为了在子类中创建一个新的方法,而不是重写父类的方法。因此,当在Main方法中创建B类的实例时,Print()方法将调用B类中的新方法,输出将是"我是B类"。
总结来说,override关键字用于在子类中重写父类中的虚方法,而new关键字用于在子类中创建一个与父类中的方法具有相同名称的新方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文