Metode overloading dan overriding adalah dua cara di mana Java mendemonstrasikan polimorfisme. Polimorfisme berasal dari gabungan dua kata Yunani: "poly" yang berarti banyak dan "morph" yang berarti bentuk. Oleh karena itu, polimorfisme memungkinkan metode untuk mengambil banyak bentuk.

Ikuti panduan ini untuk mempelajari cara membebani atau menimpa metode di Java.

Apa Metode Overloading?

"Metode overloading" mengacu pada mendefinisikan metode yang berbeda di kelas dengan nama yang sama. Metode harus memiliki tanda tangan yang berbeda. Tanda tangan metode adalah kombinasi nama metode dan daftar parameter. Itu tidak termasuk tipe pengembalian.

Kompiler mengetahui metode mana yang digunakan dengan memeriksa jenis, jumlah parameter, dan urutan penempatannya.

Terkait: Menjelajahi Warisan dalam Bahasa Pemrograman Java

Metode overloading menunjukkan polimorfisme waktu kompilasi. Polimorfisme waktu kompilasi berarti bahwa kompiler Java mengikat objek ke fungsionalitasnya saat runtime. Kompilator memeriksa tanda tangan metode untuk mencapai ini.

instagram viewer

Jenis polimorfisme ini juga dikenal sebagai pengikatan statis atau awal.

Lihat contoh metode overloading di bawah ini:

kelas Aritmatika{
int kubus (int x){
kembali x*x*x;
}
kubus ganda (ganda x){
kembali x*x*x;
}
kubus mengapung (mengambang x){
kembali x*x*x;
}
public static void main (String[] args){
Aritmatika myMultiplication = Aritmatika baru();
System.out.println("Kubus dari 5 adalah " + myMultiplication.cube (5));
System.out.println("Kubus dari 5.0 adalah " + myMultiplication.cube (5.0));
System.out.println("Kubus dari 0,5 adalah " + myMultiplication.cube (0,5));
}
}

Keluaran:

pangkat tiga dari 5 adalah 125
Kubus 5.0 adalah 125.0
Kubus 0,5 adalah 0,125

Kode di atas menunjukkan bagaimana Anda bisa mendapatkan kubus dari berbagai jenis (ke dalam, dua kali lipat, mengapung) menggunakan metode yang sama.

Umumnya, metode overloading digunakan untuk mendefinisikan metode serupa dengan tipe parameter yang berbeda.

Apa itu Metode Overriding?

Ini mengacu pada implementasi metode yang berbeda dalam subkelas. Metode harus sudah didefinisikan di kelas induk.

Metode utama (yaitu yang ada di subkelas) harus memiliki tanda tangan metode yang sama dengan yang ada di superkelas. Tipe pengembalian dari metode overriding mungkin sama atau subtipe dari yang ada di superclass.

Overriding umumnya digunakan untuk memasukkan implementasi spesifik dari perilaku objek di subclass.

akun kelas{
pesan batal publik() {
System.out.println("
Terima kasih telah membuka akun dengan kami!");
}
public static void main (String args[]) {
Akun myAccount = Akun baru();
Tabungan mySavings = Tabungan baru();
FixedDeposit myFixedDepo = FixedDeposit baru();
myAccount.pesan();
tabungan saya.pesan();
myFixedDepo.message();
}
}
kelas Tabungan memperpanjang Rekening {
pesan batal publik() {
System.out.println("
Terima kasih telah membuka rekening Tabungan bersama kami!");
}
}
kelas FixedDeposit memperluas Akun {
pesan batal publik() {
System.out.println("
Terima kasih telah membuka rekening Deposito Tetap bersama kami!");
}
}

Keluaran:

Terima kasih telah membuka akun dengan kami!
Terima kasih telah membuka rekening Tabungan bersama kami!
Terima kasih telah membuka rekening Deposito Tetap bersama kami!

Contoh di atas menunjukkan bagaimana metodenya pesan() ditimpa di subclass Tabungan dan Simpanan tetap. Pesan yang berbeda akan ditampilkan untuk pemegang rekening bank dengan rekening Tabungan dan mereka yang memiliki rekening Deposito Tetap.

Terkait: Yang Perlu Anda Ketahui Tentang Menggunakan String di Java

Perlu juga dicatat bahwa penggantian metode menunjukkan polimorfisme runtime atau pengiriman metode dinamis. Ini berarti bahwa metode yang akan dipanggil diselesaikan pada saat runtime daripada saat kompilasi.

Untuk menghindari metode ditimpa, gunakan kata kunci terakhir.

pesan batal terakhir (){
System.out.println("
Terima kasih telah membuka akun dengan kami!");
}

Ketika subkelas mencoba untuk menimpanya, kesalahan kompilasi akan terjadi.

Idealnya, semua metode yang dipanggil dalam konstruktor harus should terakhir. Ini untuk menghindari perubahan yang tidak diinginkan yang mungkin disebabkan oleh subclass.

Terkadang, Anda mungkin perlu mengakses metode yang diganti dalam metode utama. Anda dapat menggunakan kata kunci super diikuti oleh operator titik (.) dan nama metode dalam kasus seperti itu.

Pertimbangkan kelas super Satwa.

kelas Hewan{
pemindahan batal publik() {
System.out.println("
aku bisa bergerak.");
}
}

Di bawah ini adalah subclass, yang disebut Ikan, yang menimpa pindah():

kelas Ikan meluas Hewan {
pemindahan batal publik() {
System.out.println("
Saya bisa berenang.");
super.move();
}
public static void main (String args[]){
Ikan Nila = Ikan baru();
Tilapia.move();
}
}

Keluaran:

Saya bisa berenang.
aku bisa bergerak.

Saat mengganti metode, Anda juga harus memperhatikan pengubah akses yang digunakan. Pengubah di subclass harus memiliki tingkat visibilitas yang sama atau lebih tinggi daripada di kelas dasar. Misalnya, jika metode di kelas dasar didefinisikan sebagai terlindung, maka metode utama dapat berupa terlindung atau publik.

Kode Sederhana Dengan Polimorfisme

Metode overriding dan overloading penting untuk penyederhanaan kode, dan kode sederhana adalah praktik yang baik.

Mengapa? Bayangkan basis kode yang kompleks dengan lebih banyak seluk beluk daripada Grand Central Station. Sekarang bayangkan serangga yang menghancurkan mulai menghancurkan kerja keras Anda di depan mata Anda. Anda perlu mengisolasi sumber infeksi, dan Anda harus melakukannya dengan cepat.

Semoga berhasil, Anda tidak menyederhanakan kode Anda... Sekarang Anda akan mendapatkan pelajaran nyata dalam kriptografi. Mempekerjakan struktur data yang efektif dan melakukan apa yang Anda bisa untuk mempersingkat kode (seperti mengingat KERING) adalah pertahanan terbaik Anda terhadap situasi seperti ini.

Selanjutnya pada daftar pembelajaran Java Anda harus bekerja dengan array. Mereka adalah struktur data penting yang digunakan untuk menyimpan kumpulan titik data.

Surel
Cara Membuat dan Melakukan Operasi pada Array di Java

Belajar bahasa Jawa? Biarkan array menangani data Anda dengan mudah.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Pemrograman
  • Jawa
  • Tutorial Pengkodean
Tentang Penulis
Jerome Davidson (15 Artikel Diterbitkan)

Jerome adalah Staf Penulis di MakeUseOf. Dia meliput artikel tentang Pemrograman dan Linux. Dia juga penggemar kripto dan selalu mengawasi industri kripto.

More From Jerome Davidson

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan.

.