合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[success] # 方法重写 * 从父类中继承下来的方法不满足子类的需求时,就需要在子类中重新写 一个和父类一样的方法来**覆盖**从父类中继承下来的版本,该方式就叫做**方法的重写(Override)**。 * 要求方法名相同、参数列表相同以及返回值类型相同,从Java5开始允许 返回子类类型 ~~~ // 父类 public class Person { public Person getInstance() { return this; } } ~~~ ~~~ public class Worker extends Person { // 重写父类方法 Java5 之前需要返回也要是父类类型 // @Override // public Person getInstance() { // return this; // } // 现在只要返回子类类型就好 @Override public Worker getInstance() { return this; } } ~~~ * 要求方法的访问权限不能变小,可以**相同或者变大** * 要求方法不能抛出更大的异常(异常机制) >[danger] ##### 重写案例 * **@Override**可以让编译器帮助检查是否进行了正确的覆写。希望进行覆写,但是不小心写错了方法签名,编译器会报错,但是@Override不是必需的 * 重写在两个类中,并且是父子类的关系签名相同时,重写是运行期执行的 ~~~ public class Person { int age = 10; String name = "w"; public String show() { return age + name; } } ~~~ ~~~ public class Worker extends Person { int salary = 10000; @Override public String show() { return super.show() + salary; } } ~~~