Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ชนิดการคืนค่า Covariant ใน Java

ชนิดการคืนค่า Covariant (Covariant return type) หมายถึงชนิดการคืนค่าของเมธอดที่ override มันอนุญาตให้จำกัดชนิดการคืนค่าของเมธอดที่ถูก override ลงโดยไม่ต้องแคสต์ชนิดหรือตรวจสอบชนิดการคืนค่า Covariant return type ทำงานได้เฉพาะกับชนิดการคืนค่าที่ไม่ใช่ primitive

ตั้งแต่ Java 5 เป็นต้นไป เราสามารถ override เมธอดโดยเปลี่ยนชนิดการคืนค่าได้ เพียงแค่ปฏิบัติตามเงื่อนไขที่ว่า ชนิดการคืนค่าต้องเป็น subclass ของชนิดการคืนค่าของเมธอดที่ถูก override

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้:

ตัวอย่าง

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