Java中的协变返回类型是什么?

通常,在重写中,超类和子类中的方法具有相同的名称和参数。但是,当涉及到返回类型时,子类中的方法可以返回超类中方法的返回类型的子类型。

示例

如果您观察以下示例,则超类具有一个名为demoMethod()的方法,它返回类型列表的值。如果我们重写此方法,则子类中的方法可以返回List类型的值(在超类中),也可以返回List的子类型(父类中的方法的返回类型),例如ArrayList ,堆栈,向量等。

在这种情况下,子类方法返回ArrayList,它是超类的返回类型的子类型,即List。此子类型(ArrayList)被称为协变类型。 

示例

class Test{

   int data =100;

   Test demoMethod(){

      return this;

   }

}

public class Sample extends Test{

   int data = 1000;

   Sample demoMethod(){

      return this;

   }

   public static void main(String args[]){

      Sample sam = new Sample();

      System.out.println(sam.demoMethod().data);

   }

}

输出结果

1000

以上是 Java中的协变返回类型是什么? 的全部内容, 来源链接: utcz.com/z/338350.html

回到顶部