Java中重载与重写的区别

重载(Overloading)

  • 重载Overloading是一个类中多态性的一种表现。
  • Java中方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但是它们的参数列表不同(参数个数,顺序,类型至少有一个不同)。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就多态性。
  • 重载时,返回值类型和访问修饰符不同,其他相同不能构成重载。

重写(Overriding)

  • 父类与子类之间的多态性,对父类的方法进行重新定义。如果在子类中定义某方法与欺负类有相同的名称和参数,就可以说该方法被重写。
  • 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表(非static方法),则新方法将覆盖原有的方法。
  • 如需调用父类原有的方法,可以使用super关键字,该关键字引用了当前类的父类。
  • 子类的访问权限不能少于父类,返回值类型必须是父类方法返回值类型或其子类类型。
  • 重写方法不能抛出新的异常或比被重写方法抛出更加宽泛的检查性异常。

总结

  • 重载常发生在同一个类中,指多个方法具有相同的方法名,但是方法的参数类型、个数和顺序至少有一个不同,在其他相同,返回值和访问修饰权限不同时不构成重载。
  • 重写发生在父子类中,指子类中的方法对父类的方法进行重新定义,方法名和参数列表完全相同,子类中的方法访问权限必须大于父类中的被重写方法的访问权限,子类中的方法返回值类型必须是父类中的被重写方法的返回值类型或其子类型,抛出异常范围要小于父类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值