C# new关键字和override关键字区别
时间: 2023-12-10 08:04:23 浏览: 108
C# new和override的区别分析
在C#中,`new`和`override`关键字都用于方法重写,但它们有着不同的含义和用法。
`new`关键字用于隐藏基类中已有的成员,即在派生类中重新定义一个与基类中同名的成员,使得在派生类中调用该成员时,会调用派生类中的成员而不是基类中的成员。使用`new`关键字时,不会覆盖基类中的成员,而是在派生类中新增一个成员。
`override`关键字则用于重写基类中已有的虚方法或抽象方法,即在派生类中重新实现一个与基类中同名、同参数列表、同返回类型的虚方法或抽象方法,使得在派生类中调用该方法时,会调用派生类中的方法而不是基类中的方法。使用`override`关键字时,会完全覆盖基类中的方法。
需要注意的是,`new`关键字和`override`关键字都是用于实现多态性的关键字,但使用`new`关键字会破坏原有的继承关系,不利于代码的扩展和维护,因此应尽量避免使用`new`关键字。而使用`override`关键字则符合面向对象的原则,能够更好地体现类之间的继承关系。
阅读全文