MST
星途 面试题库

面试题:Java中多态协变返回类型的基础应用

请编写一个Java程序,展示多态的协变返回类型。要求定义一个父类和一个子类,子类重写父类的方法,并且使用协变返回类型。解释程序中体现协变返回类型的关键代码及作用。
15.6万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
class Animal {
    Animal getInstance() {
        return new Animal();
    }
}

class Dog extends Animal {
    @Override
    Dog getInstance() {
        return new Dog();
    }
}

在上述代码中,Animal 类有一个 getInstance 方法返回 Animal 类型实例。Dog 类继承自 Animal 类并重写了 getInstance 方法,但是返回类型为 Dog,这就是协变返回类型。关键代码为 Dog 类中的 Dog getInstance() 方法,它允许子类重写父类方法时返回比父类方法返回类型更具体的类型,增强了代码的灵活性,调用者可以直接获得更具体的 Dog 实例而无需额外的类型转换。