Metode yang kelebihan beban adalah metode di kelas yang sama yang memiliki nama yang sama tetapi menerima tipe variabel yang berbeda sebagai argumen. Misalnya, kelas mungkin berisi dua metode "tambah" yang berbeda: satu yang menerima dua nilai ganda, "tambahkan (ganda a, ganda b)," dan satu yang menerima dua nilai integer, "tambah (int a, int b)." Komputer secara otomatis memutuskan metode mana yang akan dipanggil saat run-time berdasarkan jenis variabel yang diteruskan ke metode.
Fleksibilitas
Metode yang kelebihan beban memberi pemrogram fleksibilitas untuk memanggil metode serupa untuk berbagai jenis data. Jika Anda sedang mengerjakan program matematika, misalnya, Anda dapat menggunakan kelebihan beban untuk membuat beberapa kelas "kalikan", masing-masing mengalikan sejumlah jenis argumen yang berbeda: yang paling sederhana "kalikan (int a, int b)" mengalikan dua bilangan bulat; metode yang lebih rumit "kalikan (gandakan a, int b, int c)" mengalikan satu ganda dengan dua bilangan bulat -- maka Anda bisa panggil "kalikan" pada kombinasi variabel apa pun yang Anda buat dengan metode kelebihan beban dan terima hasil yang tepat.
Video Hari Ini
Konstruktor
Overloading juga digunakan pada konstruktor untuk membuat objek baru dengan jumlah data yang berbeda. Misalnya, Anda bisa menggunakan kelebihan beban untuk membuat tiga konstruktor berbeda untuk objek "Rumah" dengan nomor rumah, nama jalan, dan variabel warna. Konstruktor paling sederhana "House()" tidak membutuhkan argumen dan membuat rumah dengan variabel default atau kosong. Konstruktor yang lebih kompleks, "House (int houseNumber, String streetName)," membuat rumah dengan nomor rumah dan nama jalan yang ditentukan, tetapi warna default atau kosong. Konstruktor paling kompleks, "House (int houseNumber, String streetName, String color)," membuat rumah dengan semua informasi yang ditentukan, tanpa meninggalkan apa pun sebagai default. Anda kemudian dapat membuat objek rumah berdasarkan informasi yang tersedia saat ini, dengan informasi yang tidak tersedia dibiarkan kosong atau default.
Referensi Ambigu
Metode yang kelebihan beban harus menggunakan jumlah atau jenis argumen yang berbeda untuk menghindari ambiguitas. Jika Anda membuat dua metode di kelas yang sama yang memiliki nama yang sama dan menerima dua bilangan bulat sebagai argumen, maka Kompiler Java tidak akan dapat membedakan keduanya, bahkan jika variabel input memiliki nama yang berbeda. Misalnya, metode "tambah (int a, int b)" tidak boleh ada di kelas yang sama dengan metode "tambah (int c, int d)."
Tipe Pengembalian
Anda harus menentukan tipe pengembalian untuk setiap metode kelebihan beban. Metode dapat memiliki tipe pengembalian yang berbeda -- misalnya, "tambah (int a, int b)" dapat mengembalikan bilangan bulat, sementara "tambah (ganda a, ganda b)" mengembalikan ganda. Namun, Java tidak dapat membedakan antara dua metode yang berbeda berdasarkan tipe pengembaliannya. Oleh karena itu, "int multiply (double a, double b)" tidak dapat berada di kelas yang sama dengan "double multiply (double a, double b)."