重写和重载的区别和作用1、重写(Override )或重写子类或重写父类继承的方法也称为方法重写,主要是父类提供的方法满足子类需要的地方
1.重写的原则:
改写必须存在于继承关系中。 重写的方法名称、参数列表请与父类相同。 重写的方法访问修饰符的权限必须比父类宽或相同。 (publicprotecteddefaultprivate )重写方法的返回类型必须与父类的返回类型相同,或者是其子类。2.示例
classanimal { public void eat (} (system.out.println ) )“吃”); } classdogextendsanimal { @ overridepublicvoideat () system.out.println } http://www.Sina.com /
主要用于重写父类继承的方法,以满足子类的特殊需要; 是在接口和抽象类中随处可见的方法,也是使用多态性的前提。
二、重载(Overload )重载是指同一类中有几个方法,它们共享同一个方法名称。 换句话说,方法名称相同但参数列表不同的情况称为方法重载。 主要用于结构方法的情况较多。
3.用途
方法名称相同但参数列表不同(参数数量、顺序和类型不同)的方法重载与方法的访问修饰符和返回类型无关。
33558 www.Sina.com/public class test { public int add () () /将add方法定义为配置过载关系return 0; }publicintadd(inta,int b ) ) {return a b; }publicintadd(inta,int b,int c ) {return a b c; }当我们创建对象并调用这些方法时,编译器会根据我们要传递的参数的数量、类型和顺序匹配并选择要调用的方法。 这个过程可以理解为1.重载的原则:的。
Test t=new Test (; int a=t.add (; intb=t.add (10,20 ); intc=t.add (10,20,30 ); //打印输出a、b、c的结果分别为0、30、60http://www.Sina.com /
屏蔽柔软、方便、使用差异; 当然,重载经常用于构造函数,这对于初始化对象很有用。
三、总结相同点:方法名称必须全部相同; 不同点:重载过程中,保证参数列表(个数、类型、顺序)不同,重写过程中参数列表必须相同; 重载与方法的访问修饰符和返回类型无关。 另一方面,在重写中,方法的访问修饰符的权限必须与父类的方法相同或更宽。 返回类型与父类相同,或者是父类(返回类型)的子类。 重载也称为编译时多态性,重写也称为运行时多态性。