Apa itu Metode Overloading?



Metode overloading adalah fitur di sebagian besar bahasa pemrograman berorientasi objek di mana dua atau lebih metode berbagi nama yang sama tetapi memiliki parameter yang berbeda. Secara khusus, jumlah, tipe data, dan/atau urutan parameternya berbeda. Saat kode dikompilasi, metode yang benar akan dipilih secara otomatis berdasarkan cara pemanggilannya. Metode juga dikenal sebagai fungsi dalam beberapa bahasa pemrograman, sehingga kelebihan metode kadang-kadang disebut sebagai kelebihan fungsi .

Dalam pemrograman komputer berorientasi objek, ketika dua atau lebih metode berbagi nama yang sama tetapi memiliki parameter yang berbeda itu disebut metode overloading.

Contoh sederhana dari metode overloading adalah metode yang menghitung luas persegi. Ini mungkin didefinisikan sebagai getArea(Square s). Metode ini dapat kelebihan beban untuk menghitung luas lingkaran tambahan dengan menambahkan metode getArea(Circle c).

Persyaratan utama untuk metode overloading adalah bahwa metode tersebut memiliki nama yang sama. Tanda tangan metode mereka — nama metode, jumlah parameter, dan tipe data parameter — seharusnya unik. Dengan cara ini, kompiler dapat menentukan metode mana yang akan dieksekusi.

Konstruktor, metode yang digunakan untuk membuat instance objek, sering kelebihan beban. Ini dilakukan untuk menginisialisasi objek dengan nilai non-default. Misalnya, objek karyawan dengan dua bidang (nama dan tanggal lahir, atau dob) mungkin memiliki konstruktor kelebihan beban berikut: Karyawan(), Karyawan(nama) dan Karyawan(nama, dob). Konstruktor pertama membuat objek karyawan dengan nama kosong dan bidang dob. Yang kedua menyetel bidang nama, tetapi membiarkan bidang dob kosong, dan yang ketiga mendefinisikan bidang nama dan dob.

Metode overloading paling sering dilakukan untuk membuat lebih dari satu metode muncul secara logis sebagai metode tunggal. Dalam contoh getArea(), meskipun secara fisik ada dua metode, pemanggil disajikan dengan satu metode getArea() logis. Dengan cara ini, getArea() dapat diperluas untuk bekerja pada bentuk lain — segitiga, trapesium, dan sebagainya — sambil tetap menampilkan dirinya secara logis sebagai metode tunggal.

Metode juga kelebihan beban untuk menjaga kompatibilitas mundur. Metode yang melakukan perhitungan kompleks dapat diberikan persyaratan baru untuk melakukan perhitungan yang sama secara opsional dengan sedikit perubahan. Parameter baru ditambahkan ke metode yang akan menentukan cara melakukan perhitungan — cara lama atau cara baru.

Untuk menghindari keharusan menemukan semua kasus di mana metode dipanggil dan menambahkan parameter baru, metode dapat kelebihan beban. Metode baru akan memiliki tanda tangan lama dan dipanggil dengan kode yang ada. Itu tidak akan berisi logika apa pun itu sendiri, dan hanya akan memanggil metode yang dimodifikasi dan meneruskan default “cara lama” untuk parameter baru. Kode baru akan memanggil metode yang dimodifikasi dan meneruskan parameter baru dengan nilai yang sesuai, cara lama atau cara baru.

Metode overloading adalah jenis polimorfisme, di mana metode logis yang sama dapat, dalam praktiknya, digunakan dalam berbagai cara. Metode overloading tidak sama dengan metode overriding . Metode overriding adalah di mana definisi metode di kelas induk diubah oleh kelas anak. Dalam hal ini, kedua metode akan memiliki tanda tangan yang sama.

Related Posts