概括
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。
overload重载
①在一个类中同名的方法通过参数类型、参数个数、参数顺序等区分不同方法。
②返回类型、访问控制修饰符、抛出的异常不一样,不能构成重载。
对于第二点,Java编程思想上是这么解释的:理论上,通过返回类型不同可以区分不同的方法,但是当我们在调用方法的时候,可能不需要获取其返回值,只是执行一次方法,如”method(**)“,在这种情况下,没有返回值类型,编译器不能区分调用的是哪个方法,故不能用返回类型区分方法。
overrider重写
①子类对父类方法的覆盖(我更喜欢”覆盖“这种称呼,比较直接)。②必须满足返回类型、方法名、参数类型、参数个数、参数顺序相同才能实现覆盖。③子类的方法不能缩小父类的方法的访问权限。