当前位置: 代码迷 >> 综合 >> 对比方法的重载与重写
  详细解决方案

对比方法的重载与重写

热度:78   发布时间:2024-02-21 11:35:15.0

总

方法重载和方法重写(覆盖)是面向对象中两个重要概念,其实这两个概念之间没有什么关系,但是毕竟都是关于方法的,毕竟容易引起混淆。对此我也做了一些归纳,感觉能够把这两个概念很好的区分开。我打算从总体区别、细节区别两个方面来说明。

分

总体的区别:最主要的区别,是解决的问题不同,即作用不同。

细节的区别:一个方法的声明自左向右包括权限修饰符、方法返回值、方法名、参数列表、抛出的异常类型等。下面从这几方面说明区别

 

总

重载实例:构造方法重载、println()方法重载

重写实例:Object类的toString()、equals()、hashCode()等都可以被子类重写

可选

  1. 某些方法使用final修饰,将无法被重写。比如Object类的wait()、notify()等
  2. 静态方法无法进行方法重写。在Java中,如果父类中含有一个静态方法,且在子类中也含有一个返回类型、方法名、参数列表均与之相同的静态方法,那么该子类实际上只是将父类中的该同名方法进行了隐藏,而非重写。添加@override注解将会报错。
  相关解决方案