1. class Base {
2. public Base newInstance() {
3. return new Base();
4. }
5. public Base newInstance2() {
6. return new Base();
7. }
8. }
9. class Test extends Base {
10. // 返回值不同
11. public Test newInstance() {
12. return new Test();
13. }
14. // 返回值相同
15. public Base newInstance2() {
16. return new Test();
17. }
18. }
在JDK5.0以前,Override要求参数列表和返回值必须完全相同,否则编译不通过
而在JDK1.5以后,系统允许返回值和父类不同了,但必须是其子类才可以。