重载的英文为Overload,而重写的英文为Override。重载是出现在同一类中多个同名函数,而重写是出现在类继承体系中同名函数。(重写有时候被称为覆盖)
重载是依据同名方法参数的个数,参数的类型和参数的顺序来确定的。方法的修饰符、返回值、抛出的异常均不能作为区分重载方法的依据。(继承体系中也有重载现象)
重写是在继承体系中子类覆盖超类中定义的方法。子类中覆盖方法的返回类型和参数类型必须精确匹配。(static方法和private方法都不能被重写)
参数类型一致,返回类型不同,编译错误,提示“试图用不兼容的返回类型覆盖”。
只要参数类型不一致,返回类型同与不同,编译都能通过,此不为重写而是重载。