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

java子类覆盖父类方法的问题,在线等
B是A的子类,B中有方法bb()
现A中也有方法bb(int a) 只是参数不同,

问:
1 这属于 子类覆盖父类方法 吗,为什么
2 子类覆盖父类方法是不是方法名和参数都要相同?
thanks

------解决方案--------------------
1、不属于重写(覆盖),属于重载。
2、是的。
------解决方案--------------------
重载和重写都可以看做java多态性的体现,方法重载是指方法名和方法的返回类型都相同,但方法参数不一样;重写的方法名.返回类型,参数类型和参数个数都要求和父类中的一样.这是重载和重写形式上的区别
------解决方案--------------------
A中public int bb(int i){ .... } B中public int bb(int i){ .... }
这个是方法的重写 不同 的只是{ .... } 中的方法体

A中public int bb(int i){ .... } B中public int bb(int i, int j){ .... }
这个是方法的重载 不同的可以是参数和方法体
------解决方案--------------------
探讨

重载和重写都可以看做java多态性的体现,方法重载是指方法名和方法的返回类型都相同,但方法参数不一样;重写的方法名.返回类型,参数类型和参数个数都要求和父类中的一样.这是重载和重写形式上的区别

------解决方案--------------------
是java中多态的体现。
java是在程序执行时将方法和方法主体关联起来,成为后期绑定。
也就是说,在实例化B的时候,会自动找到bb()方法。而不会去找bb(int)
------解决方案--------------------
探讨
B是A的子类,B中有方法bb()
现A中也有方法bb(int a) 只是参数不同,

问:
1 这属于 子类覆盖父类方法 吗,为什么
2 子类覆盖父类方法是不是方法名和参数都要相同?
thanks

------解决方案--------------------
探讨
1、不属于重写(覆盖),属于重载。
2、是的。

------解决方案--------------------
探讨

是java中多态的体现。
java是在程序执行时将方法和方法主体关联起来,成为后期绑定。
也就是说,在实例化B的时候,会自动找到bb()方法。而不会去找bb(int)