易百教程

89、协变返回类型是什么?

从 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