Kelebihan metode

Topik baru dan menarik kita hari ini adalah kelebihan metode . Hati-hati — kelebihan metode tidak boleh dikacaukan dengan penggantian metode.

Tidak seperti overriding, overloading adalah operasi yang sangat sederhana. Ini sebenarnya bukan operasi pada metode, meskipun terkadang disebut dengan istilah polimorfisme parametrik yang mengerikan .

Masalahnya di sini adalah bahwa semua metode dalam suatu kelas harus memiliki nama yang unik. Yah, itu tidak sepenuhnya akurat. Nah, lebih tepatnya, itu sama sekali tidak akurat. Nama metode tidak harus unik. Yang harus unik adalah penyatuan nama metode dan tipe parameter metode. Serikat ini dikenal sebagai tanda tangan metode

Contoh:

Kode Keterangan
public void print();
public void print2();
Ini diperbolehkan. Kedua metode tersebut memiliki nama yang unik.
public void print();
public void print(int n);
Dan juga ini. Kedua metode memiliki nama unik (tanda tangan).
public void print(int n, int n2);
public void print(int n);
Cara-caranya masih unik
public int print(int a);
public void print(int n);
Tapi ini tidak diperbolehkan . Metodenya tidak unik . Meskipun mereka mengembalikan tipe yang berbeda.
public int print(int a, long b);
public long print(long b, int a);
Tapi Anda bisa melakukan ini . Parameter metode bersifat unik

Tanda tangan termasuk nama metode dan jenis parameter . Itu tidak termasuk tipe kembalian metode dan nama parameter . Kelas tidak boleh memiliki dua metode dengan tanda tangan yang sama — kompiler tidak akan tahu mana yang harus dipanggil.

Nama parameter tidak masalah , karena hilang selama kompilasi. Setelah metode dikompilasi, hanya nama dan tipe parameternya yang diketahui. Jenis pengembalian tidak hilang, tetapi hasil metode tidak harus ditetapkan ke apa pun, sehingga juga tidak disertakan dalam tanda tangan.

Menurut prinsip OOP , polimorfisme menyembunyikan implementasi berbeda di balik satu antarmuka. Saat kita memanggil System.out.println()metode, misalnya, metode yang berbeda dipanggil tergantung pada argumen mana yang diteruskan. Ini adalah polimorfisme dalam aksi.

Itu sebabnya metode berbeda dengan nama identik yang terkandung dalam kelas yang sama dianggap sebagai bentuk polimorfisme yang lemah.