Jenis Pulangan Kovarian dalam Kaedah Overriding
Kaedah overriding dalam Java boleh berbeza dalam jenis pulangannya, dengan syarat syarat tertentu dipenuhi. Khususnya, Java menyokong jenis pulangan kovarian, membenarkan kaedah mengatasi mempunyai jenis pulangan yang lebih spesifik daripada kaedah yang ditindihnya.
Menurut bahagian Spesifikasi Bahasa Java (JLS) 8.4.5, ini dibenarkan selagi kerana peraturan berikut dipatuhi:
Jika kaedah asal mengembalikan jenis rujukan:
Sebagai contoh, pertimbangkan kod berikut:
class ShapeBuilder { ... public Shape build() { .... } } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... } }
Dalam contoh ini, kaedah bina() dalam CircleBuilder mengatasi kaedah bina() dalam ShapeBuilder. Jenis pengembalian kaedah yang ditindih ialah Bentuk, manakala jenis pengembalian kaedah yang ditindih ialah Bulatan, yang merupakan subjenis Bentuk. Ini dibenarkan oleh peraturan jenis pulangan kovarian Java.
Atas ialah kandungan terperinci Bilakah Kaedah Overriding di Java Mempunyai Jenis Pulangan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!