覆写@override和重载@overload需要注意的几个点

1.覆写@override

覆写只能针对非静态、费final、非构造方法。如果想在子类覆写的方法中调用父类方法,可以使用super关键字。

覆写原则:“一大两小两同”
①“一大”:子类的方法访问权限控制符只能相同或者变大。
②“两小”:抛出异常和返回值只能变小,能够转型成父类对象。子类的返回值、抛出异常类型必须与父类的返回值、抛出异常类型存在继承关系。
③“两同”:方法名和参数必须完全相同。

2.重载@overload

在同一个类中,如果多个方法有相同的方法名称,不同的参数类型、参数个数、参数顺序,即称为重载,比如一个类中有多个构造方法。String类中的valueOf是比较著名的重载案例,它有九个方法,可以将输入的基本数据类型、数组、Object等转化为字符串。注意在使用重载机制时,不能有两个方法名称完全相同,参数类型和个数也相同,但是返回类型不同的方法。

父类的公有实例方法与子类的公有实例方法可以存在重载关系。不管继承关系如何复杂,重载在编译时可以根据规则知道调用那种目标方法。所以重载又称为静态绑定。

注:本文摘自孤尽大佬的《码出高效》,非原创,侵删。

你可能感兴趣的:(覆写@override和重载@overload需要注意的几个点)