Overloading adalah salah satu cara penerapan dalam konsep polimorfisme. Overloading ada dua jenis,yaitu:
1.Overloading method
2.Overloading constructor
Overloading methode
Dalam Java memungkinkan untuk mendefinisikan dua atau lebih metode dalam kelas yang sama, menggunakan nama yang sama, tetapi parameter yang dideklarasikan harus berbeda (jumlah atau tipe parameternya). Jika jumlah parameternya sama maka Tipe harus berbeda semua, tetapi jika jumlah parameternya berbeda-beda maka boleh tipenya sama.
Jenis-jenis metode overloading:
1.Jumlah parameter beda, tipe beda
2.Jumlah parameter sama, tipe beda
3.Jumlah parameter beda, tipe sama
Overloading Contructor
1.Jumlah parameter beda, tipe beda
2.Jumlah parameter sama, tipe beda
3.Jumlah parameter beda, tipe sama
Metode overloading ini, terjadi pada objek yang sama, tapi nilai argumennya berbeda- beda. Ketika metode overloaded dipanggil, Java mencari kesamaan antara argumen yangdigunakan untuk memanggil metode dan parameter dari metode. Tetapi, kesamaan initidak mutlak. Hal ini karena pada java adanya otomatisasi konversi tipe yang berbeda.
Overloading selain diterapkan pada metode juga diterapkan pada konstuktor. Bedanya overloading constructor terjadi pada objek yang berbeda-beda, nilai argument berbeda, sehingga metode bisa lebih dari satu. Penerapan overloading pada kelas Java akan menjadi suatu norma tanpa perkecualian.
Contoh Overloading :
class PersegiPanjang{
public PersegiPanjang(double Panjang){
System.out.println(“\nVariabel = persegi panjang pada bentuk hp“);
System.out.println(“panjang = “ +Panjang);
Keliling(Panjang);
Public SegitigaPanjang(double Lebar){
System.out.println(“\n2Variabel = segitiganya sama kaki”);
System.out.println(“panjang = “ +Panjang+ “Lebar = “ +Lebar");
Keliling (Panjang, Lebar);
package nama;
public class Nama
{
public void Sapa()
{
System.out.println("Halo Alvin!");
}
public static void main(String [] args)
{
Siapa ss;
Nama nn;
ss = new Siapa();
nn = new Nama();
ss.Sapa();
//memanggil method Sapa() pada class Siapa
nn.Sapa();
System.out.println(“panjang = “ +Panjang);
Keliling(Panjang);
Public SegitigaPanjang(double Lebar){
System.out.println(“\n2Variabel = segitiganya sama kaki”);
System.out.println(“panjang = “ +Panjang+ “Lebar = “ +Lebar");
Keliling (Panjang, Lebar);
pada contoh di atas bahwa terdapat 2 method dengan nama sama “ segitiga” memiliki parameter berbeda. Inilah yang disebut Overloading.
Overriding
Overriding memiliki method yang namanya sama namun berbeda class. Method pertama adalah method yang berasal dari class induk dengan parameter yang sama dengan method pada class anak. Pada Overriding nama method dan parameternya pada kedua classnya harus sama.
Metode overriding adalah metode pada subclass yang mempunyai nama dan tipeidentik atau sama dengan metode superclass.
package nama;
public class Nama
{
public void Sapa()
{
System.out.println("Halo Alvin!");
}
public static void main(String [] args)
{
Siapa ss;
Nama nn;
ss = new Siapa();
nn = new Nama();
ss.Sapa();
//memanggil method Sapa() pada class Siapa
nn.Sapa();
//memanggil method Sapa() pada class Nama
}
}
class Siapa extends Nama
{
//Method Sapa() pada class Nama di override
public void Sapa()
{
System.out.println("Alvin");
}
}
public void Sapa()
{
System.out.println("Alvin");
}
}
}
class Siapa extends Nama
{
//Method Sapa() pada class Nama di override
public void Sapa()
{
System.out.println("Alvin");
}
}
Pada kedua kelas di atas jelas terlihat bahwa method “ Sapa()” pada superclass “Nama” dioverride di subclass “Siapa” memilki kesamaan dari segi nama parameter(potongan code dibawah) namun perbedaan pada implementasinya yaitu dalam mencetak kalimat yang berbeda
{
System.out.println("Alvin");
}
Perbedaan overloading dengan overriding
Overloading adalah method dengan nama yang sama dengan method lain pada suatu class tetapi dengan parameter yang berbeda. Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama sedangkan Overriding adalah method Subclass sama dengan method super class, parameternya sama tetapi pernyataan atau implementasinya berbeda.
Tidak ada komentar:
Posting Komentar