从 java5 开始,如果子类覆盖方法的返回类型是子类类型,则可以通过更改返回类型来覆盖任何方法。 它被称为协变返回类型。 协变返回类型指定返回类型可以在与子类相同的方向上变化。
示例:
class A {
A get() {
return this;
}
void message() {
System.out.println("A => welcome to covariant return type");
}
}
class NewClass extends A {
NewClass get() {
return this;
}
void message() {
System.out.println("B => welcome to covariant return type");
}
public static void main(String args[]) {
new NewClass().get().message();
}
}
运行结果:
B => welcome to covariant return type