Java协变返回类型

【Java协变返回类型】协变返回类型指定返回类型可能不同方向相同的子类。
Java5之前,是不可能覆盖任何方法通过改变返回类型。Java5,但现在,因为可以覆盖方法通过改变返回类型如果子类覆盖方法的返回类型是销售,但它改变它的返回类型的子类类型。让我们看一个简单的例子:
注意:如果你是初学者到java,跳过这个话题后,回到OOP概念。协变的简单示例返回类型

class A{ A get(){return this; } }class B1 extends A{ B1 get(){return this; } void message(){System.out.println("welcome to covariant return type"); }public static void main(String args[]){ new B1().get().message(); } }

Output:welcome to covariant return type

正如你所看到的在上面的例子中,get()方法的返回类型的类是一个但是,get()方法的返回类型B类B两种方法有不同的返回类型,但最重要的方法。这就是所谓的协变返回类型。
协变返回类型是如何实施的?
基于Java不允许返回类型重载但JVM总是允许返回类型重载。JVM使用的完整签名方法查找/决议。完整的签名意味着它包括返回类型除了参数类型。即。,一个类可以有两个或两个以上的方法只有返回类型不同。javac使用这个事实来实现协变返回类型。

    推荐阅读