Jumat, April 19, 2019

Method Overloading pada Java

Overloading memungkinkan berbagai method yang berbeda untuk memiliki nama yang sama, tetapi dengan signature yang berbeda. Signature dapat berbeda oleh angka dari input parameter atau tipe dari input parameter atapun juga keduanya. Overloading berkaitan dengan compile time (atau static) polymorphism.

Output:
30
60
31.0

Pertanyaan:
Bagaimana jika prototipe tertentu tidak cocok dengan argumen.
Jawab:
Secara prioritas, compiler akan mengambil langkah-langkah berikut ini:
satu, Ketik Conversion tetapi dengan tipe yang lebih tinggi (dalam hal rentang) pada 'family' yang sama.
dua, Ketik Conversion ke 'family' yang lebih tinggi selanjutnya (seharusnya jika tidak terdapat tipe data long yang tersedia untuk tipe data int, maka yang akan dicari adalah tipe data float).
Berikut adalah contoh dari penerapan konsep tersebut:


Apa keuntungan dari overloading?
Keuntungannya adalah tidak perlu menciptakan dan mengingat nama-nama fungsi yang berbeda untuk melakukan tugas yang sama. Contohnya, pada program berikut ini jika overloading tidak didukung oleh Java, maka harus diciptakan method dengan nama sum1, sum2, ..., dan seterusnya.

Dapatkah dilakukan overloading method pada tipe return?
Jawab: tidak bisa dilakukan overloading oleh tipe return. Behavior ini juga sama pada C++, berikut contoh program untuk rincian lebih lengkap.

Namun, overloading method pada tipe return mungkin dapat dilakukan pada kasus dimana tipe data dari fungsi akan dipanggil spesifik dan eksplisit. Perhatikan contoh program berikut ini:


Output:
10
a


Output:
10
a

Dapatkah dilakukan overloading pada method static?
Jawabannya adalah iya. Method static dapat memiliki lebih dari satu static method dengan nama yang sama, tetapi berbeda pada input parameternya.

Dapatkah dilakukan overloading method yang berbeda hanya pada bagian keyword static?
Tidak dapat dilakukan overloading dua method pada Java jika berbeda hanya pada keyword static-nya (angka dari parameter dan tipe dari parameter adalah sama).

Dapatkah dilakukan overloading main() pada Java?
Seperti halnya static method lainnya, main() dapat dilakukan overloading pada Java. Berikut adalah contoh programnya.

Output:
Hi Geek (from main)
Hi, Geek
Hi, Dear Geek, My Geek

Apakah Java mendukung operator overloading?
Tidak seperti C++, Java tidak mengijinkan user-defined overloading operator. Secara internal Java melakukan overloading operator.

Apakah perbedaan antara overloading dan overriding?
satu, Overloading adalah tentang fungsi yang sama tetapi memiliki signature yang berbeda. Overriding adalah tentang fungsi yang sama, signature yang sama, tetapi class yang terhubung melalui inheritance berbeda seperti diperlihatkan pada gambar 1.

penggunaan overloading dan overriding pada bahasa pemrograman Java
Gambar 1 overloading dan overriding
sumber : geeksforgeeks.org

dua, Overloading adalah contoh dari compiler time polymorphism dan overriding adalah contoh dari runtime polymorphism.





Tidak ada komentar:

Posting Komentar

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

Footer Adsense