Java-方法重载和重写的区别

一、方法的重载(overload)

1.重载的定义:

在同一个类中,存在两个及以上具有相同名字的函数方法,其参数的顺序不同或个数不同或类型不同,我们称之为方法的重载。

2.重载规则:

①必须在同一个类中
②函数名必须相同
③参数列表不同,包括(个数、顺序、类型)

区别重载的方法规则其实是比较简单的,因为每一个重载的方法都应该有独一无二的参数类型列表。
在方法名字相同时,除了可以用观察参数类型的差异以外,还可以用参数顺序的不同来进行判断,但是这种方法不建议使用,会对后期的代码维护带来不便。

简单的重载例子:
Java-方法重载和重写的区别

二、方法的重写(override)

1.重写的定义:

通过子类重新定义父类,如果子类在定义的过程中存在和父类相同的名字以及参数,被我们称之为重写。

2.重写规则:

①子类对于修饰符的限制一定要比父类访问的修饰符要大。
②不允许产生新的异常,可以抛出非检查异常

简单的重写例子:
Java-方法重载和重写的区别

三、与多态的联系

方法的重载:实现的是编译时的多态性,也成为前绑定
方法的重写:实现的是运行时的多态性,也成为后绑定