Return Covariant Java dan Fungsinya
Pada Java 5.0 dan versi selanjutnya sangat mungkin untuk memiliki return tipe yang berbeda untuk method overriding dalam child class, tetapi tipe return child menjadi sub tipe dari tipe return parent-nya. Overriding method menjadi variant sehubungan dengan return tipe tersebut.
// Program Java
// mendemonstrasikan tipe
// return berbeda jika tipe
// return dalam overriding
// method adalah sub tipe.
// Dua class digunakan untuk
// tipe return.
class A {}
class B extends A {}
class Base
{
A fun()
{System.out.println("Base"
+" fun()");
return new A();}
}
class Derived extends Base
{
B fun()
{System.out.println("Derived"
+" fun()");
return new B();}
}
public class Main
{
public static void main(String args[]){
Base base = new Base();
base.fun();
Derived derived = new Derived();
derived.fun();}
}
Derived fun()
Catatan: Jika tipe return dari Base dan Derived ditukar, maka hasil dari program sebelumnya tidak akan bekerja.
- Membantu menghindari tampilan tipe cast yang membingungkan dalam hirarki class dan membuat kode program lebih mudah dibaca, digunakan, dan dilakukan perawatan.
- Lebih bebas untuk memiliki tipe return spesifik ketika overriding pada method.
- Membantu antisipasi runtime ClassCastException dalam return.
Apa yang dimaksud dengan covariant return type pada bahasa pemrograman Java?
BalasHapusTipe covariant return mengacu pada tipe return dari method overriding. Hal tersebut memungkinkan untuk mempersempit jenis return dari method yang overriding tanpa perlu mentransmisikan jenis atau memeriksa jenis pengembalian atau return. Jenis covarianet return hanya berfungsi untuk jenis reuturn non-primitif.
HapusDalam pemrograman berorientasi object, jenis covariant return dari suatu method adalah salah satu yang dapat dilakukan overriding dengan jenis yang lebih sempit ketika method tersebut diganti dalam sub class. Hal ini biasanya menyiratkan bahwa tipe return dari method overriding akan menjadi subtipe dari tipe return method yang akan dilakukan overriding pada bahasa pemrograman Java.
BalasHapusMasih belum bisa terlalu memahami fungsi dari tipe return covarian, mungkin bisa diberi contoh lain agar lebih bisa menjelaskan maksudnya.
BalasHapusoke, terima kasih masukannya.
Hapus