ประเภทการส่งคืน Covariant หมายถึงประเภทการส่งคืนของวิธีการแทนที่ อนุญาตให้จำกัดประเภทการส่งคืนของวิธีการที่ถูกแทนที่โดยไม่จำเป็นต้องส่งประเภทหรือตรวจสอบประเภทการส่งคืน ประเภทผลตอบแทนร่วมใช้ได้กับประเภทผลตอบแทนที่ไม่ใช่แบบดั้งเดิมเท่านั้น
จาก Java 5 เป็นต้นไป เราสามารถแทนที่เมธอดโดยการเปลี่ยนประเภทการส่งคืนโดยปฏิบัติตามเงื่อนไขที่ประเภทการส่งคืนเป็นคลาสย่อยของประเภทการส่งคืนเมธอดที่ถูกแทนที่
ตัวอย่างต่อไปนี้แสดงให้เห็นเช่นเดียวกัน
ตัวอย่าง
class SuperClass {
SuperClass get() {
System.out.println("SuperClass");
return this;
}
}
public class Tester extends SuperClass {
Tester get() {
System.out.println("SubClass");
return this;
}
public static void main(String[] args) {
SuperClass tester = new Tester();
tester.get();
}
} ผลลัพธ์
Subclass