Langsung ke konten utama

Iklan





Tipe Return Covariant pada Java

Sebelum JDK 5.0, sangat tidak mungkin melakukan overriding method dengan mengubah tipe return-nya. Ketika melakukan 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 sebagai invariant yang berkaitan dengan return tipe.

Covariant return tipe
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.

Covariant return tipe diambil dari prinsip subtitusi Liskov.

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

// 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();}

}

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 kode 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.


Iklan

Komentar

  1. Apa yang dimaksud dengan covariant return type pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Tipe 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.

      Hapus
  2. Dalam 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.

    BalasHapus
  3. Masih belum bisa terlalu memahami fungsi dari tipe return covarian, mungkin bisa diberi contoh lain agar lebih bisa menjelaskan maksudnya.

    BalasHapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D