Menu Close

Perbedaan antara Overloading dan Overriding di Jawa

Perbedaan utama: Overloading berarti memiliki dua metode dari kelas yang sama dengan nama yang sama dan dengan tipe parameter yang berbeda, sedangkan override berarti memiliki dua metode yang berbeda di kelas yang sama dengan tipe parameter yang sama, tetapi dengan implementasi yang berbeda.

Metode overriding dan overloading adalah dua konsep atau teknik yang digunakan dalam bahasa pemrograman java. Kedua konsep tersebut memungkinkan programmer untuk memberikan implementasi yang berbeda untuk metode dengan nama yang sama. Artikel ini membedakan antara dua konsep pemrograman.

   

Function overloading atau method overloading memungkinkan pembuatan beberapa metode dengan nama yang sama, di kelas yang sama tetapi berbeda satu sama lain dalam input dan tipe output dari fungsi. Ini hanya didefinisikan sebagai kemampuan satu fungsi untuk melakukan tugas yang berbeda.

Dalam overloading, implementasi metode berbagi nama yang sama karena mereka melakukan tugas yang sama. Juga, kelebihan muatan dianggap polimorfik. Fungsi yang memiliki implementasi berbeda tergantung pada tipe argumen yang ditentukan. Ini biasanya dikaitkan dengan bahasa pemrograman statis yang memberlakukan tipe pemeriksaan panggilan fungsi. Ini juga dianggap praktis karena memungkinkan programmer untuk menulis sejumlah metode berbeda di kelas yang sama. Namun, dalam proses overloading, prosesor runtime mengubah nama semua metode yang kelebihan beban, yang bisa menjadi masalah.

 

Metode override, dalam pemrograman berorientasi objek, adalah fitur yang memungkinkan subclass atau kelas anak untuk menyediakan implementasi spesifik dari metode yang sudah disediakan oleh salah satu kelas super atau kelas induknya. Implementasi di subclass menimpa atau menggantikan implementasi di kelas induk dengan menyediakan metode dengan nama yang sama, parameter atau tanda tangan yang sama, dan jenis pengembalian yang sama dengan metode di kelas induk.

Dalam metode overriding, fungsi dikodekan untuk melakukan tugas tertentu dalam suatu program. Mengesampingkan tergantung pada kehadiran fungsi kelas dasar untuk penampilannya. Di sini, fungsi yang dieksekusi ditentukan oleh objek yang digunakan untuk menjalankannya, mis.jika objek kelas induk digunakan untuk memanggil metode, maka fungsi di kelas induk akan dieksekusi. Overriding bersifat polimorfik; itu membantu untuk merancang program berdasarkan pada parameter implisit pertama, yang dapat diselesaikan saat runtime. Ada beberapa bahasa di java yang memungkinkan programmer untuk mencegah metode ditimpa.

 

Perbandingan antara Overloading dan Overriding:

Kelebihan beban

Utama

Definisi

Ini berarti memiliki metode dengan kelas yang sama dengan nama yang sama, tetapi setiap metode memiliki parameter yang berbeda atau memiliki parameter yang sama dengan jenis dan urutan yang berbeda.

Ini berarti memiliki sub kelas dengan metode yang sama dengan nama yang sama dan tipe parameter yang persis sama dan tipe pengembalian yang sama dengan kelas super.

Berarti

Ini berarti bahwa lebih dari satu metode berbagi nama yang sama di kelas yang sama tetapi memiliki tanda tangan yang berbeda.

Ini berarti bahwa metode kelas dasar didefinisikan ulang di kelas turunan dengan tanda tangan yang sama.

Tingkah laku

Itu menambah atau meluas ke perilaku metode.

Ini mengubah perilaku metode yang ada.

Polimorfisme

Ini adalah polimorfisme waktu kompilasi.

Ini adalah polimorfisme run time.

Metode statis

Metode statis dapat kelebihan beban.

Metode statis tidak dapat diganti.

Obligasi

Ikatan statis.

Ikatan dinamis.

Warisan

Ini mungkin atau mungkin tidak memerlukan warisan.

Itu selalu membutuhkan warisan.

Asosiasi

Biasanya dikaitkan dengan bahasa program statis.

Biasanya dikaitkan dengan program berorientasi objek.

Tanda tangan

Metode memiliki tanda tangan yang berbeda.

Metode harus memiliki tanda tangan yang sama.

Kecepatan

Ini lebih cepat daripada mengesampingkan.

Ini lambat dibandingkan dengan kelebihan beban.

Kelas

Itu tidak membutuhkan lebih dari satu kelas untuk kelebihan beban.

Ini membutuhkan setidaknya dua kelas untuk kelebihan beban.

Tingkat

Metode dapat memiliki tingkat akses apa pun.

Metode memiliki tingkat akses yang sama atau luas.

Contoh

Tambah Kelas

{

jumlah int (int a, int b)

{

kembalikan a + b;

}

int sum (int a)

{

mengembalikan +10;

}

}

Kelas A // Kelas Super

{

tampilan batal (int num)

{

cetak num;

}

}

// Kelas B mewarisi Kelas A

Kelas B // Sub Kelas

{

tampilan batal (int num)

{

cetak num;

}

}