黑马程序员技术交流社区

标题: new一个方法和override一个方法有什么区别? [打印本页]

作者: yuchen0418    时间: 2012-5-9 20:47
标题: new一个方法和override一个方法有什么区别?
面向对象中,在派生类中可以new或override一个基类中已存在的方法,这两者有什么区别?
作者: 陈宗福    时间: 2012-5-9 23:14
new这个关键字常用3个功能:
作为修饰符;作为运算符用来创建一个对象和调用构造函数; 用于在泛型声明中约束可能用作类型参数的参数的类型。
Override关键字主要是提供派生类对基类方法的新实现,重写的基类方法必须和Override的方法具有相同的签名,此关键字不可以用于重写非虚方法和静态方法,与其配套使用的关键字是Virtual、abstract。
new和override  的最大区别是override 与 virtual的搭配使用!
作者: 何甫君    时间: 2012-5-10 11:53
new关键字跟继承没有关系,可以用在一个类的子类。当子类的一个方法用到new(这个方法可以和基类的一个方法同名,也可以不同),调用的时候会运行基类的同名方法,而不会调用子类有new关键字的方法;override只是在继承的时候才会用到,用在子类要覆盖基类方法的方法。当一个子类的方法用到override 关键字,在调用的时候会运行子类中相应的方法。

作者: 金祎    时间: 2012-5-10 12:14
@Override 字面翻译就是覆盖的意思。
导出类对超类的覆盖,如果你想覆盖的话,在esclipes中,它自动提示你覆盖那个方法,避免覆盖错误,当然你不用它也可以覆盖到处类的方法。
new +构造方法的作用是:创建一个对象,实例化一个对象。
所以两个不可同日而语。呵呵!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2