JAVA协变返回类型

协回返回类型表示:在导出类中覆盖基类的方法,可以返回基类方法的返回类型的某种导出类。
看一下例子

class zoo {

}


class animal {
    zoo speak() {
        return new zoo();
    }
}

class tiger extends zoo {

}


class panda extends animal {
    @Override
    tiger speak() {
        return new tiger();
    }
}

panda继承了animal,并且重写了speak()方法,父类的speak()方法的返回值类型是zoo,而子类重写speak()方法的返回值却是tiger,因为tiger继承了zoo,所以编译器不会报错。因而也是一种合法的返回类型。

posted @ 2018-02-04 09:26  诸秋白  阅读(197)  评论(0编辑  收藏  举报