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
热门推荐
10 广西考试祝福语结婚简短
11 猪年祝福语简短小孩
12 元旦祝福语送长辈简短
13 恭喜二宝祝福语简短
14 祝福语暖心话简短
15 国庆中秋祝福语简短兄弟
16 朋友订婚的祝福语简短
17 送弟弟中秋祝福语简短
18 爱生日祝福语简短独特