java中重载与重写的区别

如题所述

java中有两个东西,一个是 方法重载 一个是 成员覆写 ,
方法重载 是指 一个类里面可以有多个方法,而且方法名称相同,但是方法的参数类型或者参数个数不同,功能也可以不同。
成员覆写 是指子类继承父类后,可以覆盖掉父类的 方法 和 属性。子类的方法和属性名称类型与父类的一样,就覆盖掉父类的属性和方法。

重载只能是方法,在同一个类中。
覆写是子类与父类之间,属性与方法都可以覆写。

其实重写就是重载,而令一个是覆写。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-15
重载: 是指同名方法 不同参数的多个方法同时出现在一个类中
重写: 子类方法对父类方法的重新实现(要求子类方法的签名与父类方法签名一致)

所以,最大的区别是: 重载是发生在一个类中的多个不同参数的同名方法
而重写,是发生在父类与子类
第2个回答  2012-09-18
重写是在子类中定义一个同名的方法来重新描述从父类继承下来的方法,即隐藏了父类的原方法。
重载是相同名字的方法,通过赋予不同数量和类型的参数,实现在同一类中的多次定义,并可在主函数中依据参数的不同调用名字相同,但功能不同的重载方法。
第3个回答  2020-04-25
三、
java中的重载(overload)
1、相同方法名,不同参数表。
2、方法重载时,对于参数的匹配有个向上就近原则。(这样可以节省栈空间资源);
3、为什么面向对象中要有方法重载?
方法的重载使同一类方法由于参数造成的差异对于对象的使用者是透明的。对象的使用者只负责把参数交给对象,而具体怎么实现由对象内部决定。
4、java中的运算符重载
java中唯一重载的运算符是string类型的“+”号,任何类型+string类型结果都为stirng类型。
5、注意点:重载不仅出现在同一个类中,也可以出现在父子类中。
java中的重写(override)
1、
参数表、方法名必须完全相同,访问修饰符要求子类宽于父类。返回值类型在jdk5.0以前要求完全相同,
5.0以后可以父类返回一个对象a,子类返回一个该对象a的子类也是覆盖。子类方法覆盖父类方法时要求子类方法的访问修饰符宽于或等于父类的访问修饰符。
2、
为什么面向对象中要有方法覆盖?
覆盖允许子类用自己特色的方法去替换调父类已有的方法。
3、
父类中的私有方法与子类中任何方法不够成覆盖关系,
也就是说只有父类被子类继承过来的方法,才有可能与子类自己的方法构成覆盖关系。
4、少覆盖原则:如果子类覆盖了父类过多的方法,那么我们要重
新思考一下这两个类之间到底是不是继承关系。
注:子类的属性和父类的属性同名时叫遮盖(区覆盖)
属性的遮盖是没有多态的。
相似回答