Rabu, April 24, 2019

Tipe Return Covariant pada Java

Sebelum JDK 5.0, sangat tidak mungkin melakukan overriding sebuah method dengan mengubah tipe return. Ketika dilakukan overriding sebuah method class parent, bagian nama, tipe argumen, dan return tipe dari overriding method dalam child class harus sama dengan parent class method-nya. Overriding method sebelumnya dikatakan invariant sehubungan dengan return tipe.

Covariant return tipe
Pada Java 5.0 dan seterusnya sangat mungkin memiliki return tipe 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.

Covariant return tipe diambil dari prinsip subtitusi Liskov.

Berikut ini adalah contoh yang diberikan untuk memahami tipe return dengan method overriding.


Output:
Base fun()
Derived fun()

Catatan: Jika tipe return dari Base dan Derived ditukar, maka hasil dari program sebelumnya tidak akan bekerja.

Keunggulan:
satu, Membantu menghindari tampilan tipe cast yang membingungkan dalam hirarki class dan membuat code program lebih mudah dibaca, digunakan, dan dilakukan perawatan.
dua, Lebih bebas untuk memiliki tipe return spesifik ketika overriding pada method.
tiga, Membantu antisipasi runtime ClassCastException dalam return.





Related Posts

Tipe Return Covariant pada Java
Oleh

mohon untuk melakukan koreksi jika terdapat kesalahan pada penulisan blog ini,