方法重载和方法重写(覆盖)的区别

方法重载和重写是不同的概念,主要有以下区别:

1、首先是含义不同

1)方法重载是在同一个类中,声明多个同名方法,通过参数列表来区分不同的方法,与参数列表的数量、类型和顺序有关,与修饰符和返回值类型以及抛出异常类型无关

2)方法重写的前提是发生在具有继承关系的两个类之间,方法重写有以下规则:

a.参数列表必须保持一致

b.返回值类型必须保持一致

c.方法名必须保持一致

d.重写方法的访问权限范围必须大于等于父类方法

e.重写方法的抛出异常类型范围不能大于父类方法

2、方法的重载和重写的作用不同

重载:在一个类中为一种行为提供多种实现方式并提高可读性

重写:父类方法无法满足子类的要求,子类通过方法重写满足需求

实例:

重载:构造方法的重载、println()方法重载

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

用图表表示如下:

原文地址:https://www.cnblogs.com/sinoaccer/p/12009030.html