问题描述
- java重载与覆盖,新人求教
-
如题Java重载与覆盖
麻烦大神给讲解一下,网上也查了资料但是还不是理解的特别透彻。
解决方案
重载是方法名一样,参数列表不同;
覆盖(重写),子类重写父类的方法,一般有Override关键字修饰;
看下这个多实践就应该能理解了。http://blog.csdn.net/fsz521/article/details/8739236
解决方案二:
方法重载:在一个类里面,相同功能乃至不同功能(必须是形式参数类型不同)的方法用同一个方法名来写的手段,例如
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) 方法的返回类型和方法的修饰符可以不相同
解决方案三:
是Java的重载何重写吧?重载的意思就是在一个class类中方法名相同,参数不同,返回值可相同可不相同,体现的是多态性,重写的意思就是子类将父类的方法覆盖,相当于方法名和参数全部相同,调用时可选择调用子类的方法,或者父类的方法,如要调用父类的方法需要super关键字,子类和父类的关系相当于 extend 继承的类叫做子类,被继承的类叫做父类,其中体现的是子类与父类之间的多态性。
解决方案四:
重载只是指函数名相同,但调用参数类型或参数个数不同,而自动识别调用。常常是在一个类中定义多个同名方法,
或main函数去调用先前定义的同名方法。
覆盖是指父类和子类形成继承关系后,调用方法根据实例是父类还是子类,自动调用相应的方法。
这些方法位于不同的类层次中,函数名、参数类型、参数个数和参数名必须满足全部一样。
解决方案五:
重写就是子类写一个方法覆盖父类的方法,这样用子类调用这个方法的话,有效的是子类的方法。
重载就是方法名相同,方法标签不同,也就是参数不一样。
解决方案六:
java重载与覆盖
希望对你有用!!!
解决方案七:
重载和重写相同之处都是带有重字。只不过重载的重讲的是方法或函数名相同,参数完全不同,而重写讲的是方法或函数名相同,且参数完全相同。
解决方案八:
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数,可以参考API帮助文档看看类的构造方法