日期:2014-05-20  浏览次数:20730 次

如何区分重写还是重新定义?
当父类有一个不可重写的方法是,而子类中有一个与该方法名一样的方法,如何确定子类中的方法是重新定义或是出错重写了父类中不可重写的方法呢?
谢谢!!
------最佳解决方案--------------------
嘛叫重新定义啊?
看看这个吧:
http://blog.csdn.net/mengqingzheng/article/details/5334790
------其他解决方案--------------------
父类中是final的方法,是不可能被重写的。子类若是有个与父类final同名的方法,自动被认为是新建了一个方法。
final方法肯定是不能被覆盖的。等于就是有个断层一般。
------其他解决方案--------------------
和父类一样的参数列表是override,否则是重新定义
------其他解决方案--------------------
看参数列表吧
------其他解决方案--------------------
不可被重写的只可能是final方法。上面的是一个“定论”,请楼主死记硬背下来。
------其他解决方案--------------------
引用:
引用:父类中是final的方法,是不可能被重写的。子类若是有个与父类final同名的方法,自动被认为是新建了一个方法。
final方法肯定是不能被覆盖的。等于就是有个断层一般。
比如A中有个public final int method(int a , int b){return 0;},B继承A,B中有个public int ……


因为参数也相同了……参数相同情况下,还是被视为重写。limit111的回答就是正确答案。
------其他解决方案--------------------
看返回值很 参数列表, 还有就是final 的方法不能 被重写
------其他解决方案--------------------
引用:
父类中是final的方法,是不可能被重写的。子类若是有个与父类final同名的方法,自动被认为是新建了一个方法。
final方法肯定是不能被覆盖的。等于就是有个断层一般。

比如A中有个public final int method(int a , int b){return 0;},B继承A,B中有个public int method(int a, int b){return 1;}结果编译出错。这里为什么不能理解为重新定义呢?
------其他解决方案--------------------
谢啦1111111