黑马程序员技术交流社区

标题: new跟override的区别? [打印本页]

作者: 小人渣子    时间: 2013-10-17 21:57
标题: new跟override的区别?
本帖最后由 小人渣子 于 2013-10-17 22:57 编辑

不知道这样理解对不对,求大神解释一下!!!
下面是override的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//调用A中Test();
b.Test();//调用B中Test();
a1.Test();//调用B中Test();系统会自动识别a1是B的实例
((A)b).Test();//与上面相同

下面是new的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//调用A中Test();
b.Test();//调用B中Test();
a1.Test();//调用A中Test();
((A)b).Test();//与上面相同



作者: 许庭洲    时间: 2013-10-17 22:14
1. 如果派生类中的方法前面带有 new 关键字,则该方法被定义为独立于基类中的方法。
2.如果派生类中的方法前面带有 override 关键字,则派生类的对象将调用该方法,而不是调用基类方法。

作者: 小人渣子    时间: 2013-10-17 22:34
本帖最后由 小人渣子 于 2013-10-17 22:51 编辑
许庭洲 发表于 2013-10-17 22:14
1. 如果派生类中的方法前面带有 new 关键字,则该方法被定义为独立于基类中的方法。
2.如果派生类中的方法 ...

谢谢您的回答我明白了~




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