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

在线等。方法的重载和重写的区别
在线等

------解决方案--------------------
重写:首先是要继承父类,从父类继承来的东西,有些是我们不想要的,我们可以照着这个模子在加点自己想要的东西。但要注意的是他的修饰符一定要小于等于父类的修饰符覆盖范围。即public 大于protect 大于private
重载:是多态的一种体现方式。方法名字相同,但是参数不同(个数,顺序,类型)
若还有不懂的地方我可以给你写个例子看下

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

注意一下读音,就容易区别了:

重载,读:zhong(第四声)载
重写,读:chong 写

重载就是在一个类里相同名字的方法,因为根据参数列表的不同,而有不同的功能。就象本辆货车原来只能装1吨货,现在装了3吨货,这个叫zhong载了。重载和继承没有直接关系。

重写,简单说来就是子类把父类已经实现的方法重新实现一次,它一定和继承有关。

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

注意一下读音,就容易区别了:

重载,读:zhong(第四声)载
重写,读:chong 写

重载就是在一个类里相同名字的方法,因为根据参数列表的不同,而有不同的功能。就象本辆货车原来只能装1吨货,现在装了3吨货,这个叫zhong载了。重载和继承没有直接关系。

重写,简单说来就是子类把父类已经实现的方法重新实现一次,它一定和继承有关。

------解决方案--------------------
重载:发生在同一个类中,方法名相同、入参不同(入参个数、入参类型),与修饰符、抛出异常、返回值类型都无关,比如一个类里可以有两个main方法,就是重载
重写:发生在两个类中,父子类中,父类有这个方法了,子类中又自己写了一遍。
------解决方案--------------------
重写父类基类的方法,重载使用方法名相同,参数不同的形式在同一类中写出功能类似的方法,例如:
void method(int i);
void method(double i);
void methos(float i);
void method(String str);
为的是根据方法名和后面的参数能够唯一确定实际应该调用对象的哪个方法。例如:
object.method(1);调用method(int i);
object.method(2.0);调用method(double i);
object.method(2.0f);调用method(float i);
object.method("abc");。。。。。。
但是方法重载不能定义方法签名相同但是返回值不同的方法。例如:
int method(int i);
String method(int i);
这样jvm不能确定调用对象的哪个方法