ประเภทการส่งคืน 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