2 qq 27860313 qq_27860313 于 2015.05.27 21:32 提问

java重载与覆盖,新人求教

如题Java重载与覆盖
麻烦大神给讲解一下,网上也查了资料但是还不是理解的特别透彻。

8个回答

guwei4037
guwei4037   Ds   Rxr 2015.05.27 21:40

重载是方法名一样,参数列表不同;
覆盖(重写),子类重写父类的方法,一般有Override关键字修饰;
看下这个多实践就应该能理解了。http://blog.csdn.net/fsz521/article/details/8739236

qq_27860313
qq_27860313 多谢!
2 年多之前 回复
liuyuxuan2388
liuyuxuan2388   2015.05.27 21:43

方法重载:在一个类里面,相同功能乃至不同功能(必须是形式参数类型不同)的方法用同一个方法名来写的手段,例如
class A{
public void display(int a)
{System.out.println(“数字是”+a);}

publlic void display(char a)
{System.out.println(“字符是”+a);}

public void display(String s)
{System.out.println("字符串是"+s);}
}
这样一来,通过对不同类型的参数对比,java就能自动选用合适的方法,而不用分别声明。
/////////////////////////////////////////
方法重写:父类有方法A,子类为实现自身特殊化需求,对父类的方法进行改写的手段,也是同名,区别是一个是父类的方法,一个是子类的方法(参数也要一样)。例如
class A{
public void display(int a)
{System.out.println(“数字是”+a);}

publlic void display(char a)
{System.out.println(“字符是”+a);}

public void display(String s)
{System.out.println("字符串是"+s);}
}
class B extends A
{
public void display(int a)
{
System.out.println(a+1);
}
}

这样以来,对整型数,A将它显示出来,B将它加1再显示出来。大体上就是这个 意思。

具体还有一些需要注意的地方:
对于方法重写:
(1) 子类的方法的名称及参数必须和所覆盖的方法相同

(2) 子类的方法返回类型必须和所覆盖的方法相同

(3) 子类方法不能缩小所覆盖方法的访问权限

(4) 子类方法不能抛出比所覆盖方法更多的异常

对于方法重载:
(1) 方法名必须相同

(2) 方法的参数名必须相同

(3) 方法的返回类型和方法的修饰符可以不相同

qq_27860313
qq_27860313 多谢!
2 年多之前 回复
baidu_28537959
baidu_28537959   2015.05.27 21:45

是Java的重载何重写吧?重载的意思就是在一个class类中方法名相同,参数不同,返回值可相同可不相同,体现的是多态性,重写的意思就是子类将父类的方法覆盖,相当于方法名和参数全部相同,调用时可选择调用子类的方法,或者父类的方法,如要调用父类的方法需要super关键字,子类和父类的关系相当于 extend 继承的类叫做子类,被继承的类叫做父类,其中体现的是子类与父类之间的多态性。

JimmyMxc
JimmyMxc 重载就是相同方法名,然后带的形式参数不同以达到一种一个名字多种效果
2 年多之前 回复
qq_27860313
qq_27860313 多谢!
2 年多之前 回复
frank_20080215
frank_20080215   2015.05.27 22:11

重载只是指函数名相同,但调用参数类型或参数个数不同,而自动识别调用。常常是在一个类中定义多个同名方法,
或main函数去调用先前定义的同名方法。
覆盖是指父类和子类形成继承关系后,调用方法根据实例是父类还是子类,自动调用相应的方法。
这些方法位于不同的类层次中,函数名、参数类型、参数个数和参数名必须满足全部一样。

z345434645
z345434645   2015.05.27 22:13

重写就是子类写一个方法覆盖父类的方法,这样用子类调用这个方法的话,有效的是子类的方法。
重载就是方法名相同,方法标签不同,也就是参数不一样。

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.05.28 01:55

java重载与覆盖
希望对你有用!!!

tongyi55555
tongyi55555   2015.05.28 09:02

重载和重写相同之处都是带有重字。只不过重载的重讲的是方法或函数名相同,参数完全不同,而重写讲的是方法或函数名相同,且参数完全相同。

sinat_28597179
sinat_28597179   2015.05.30 10:39

重写是子类的方法覆盖父类的方法,要求方法名和参数都相同

重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法

Csdn user default icon
上传中...
上传图片
插入图片