Overloading merupakan konsep dalam pemrograman berorientasi objek yang
memungkinkan untuk membuat suatu kelas memiliki beberapa method dengan
nama sama tetapi memiliki implementasi atau argumen yang berbeda.
Dalam bahasa pemprograman Java diperkenankan untuk mendefinisikan dua
method atau lebih dengan nama yang sama di dalam satu kelas sepanjang deklarasi
dan parameternya berbeda, atau disebut signature-nya berbeda.
Hal ini dimungkinkan asalkan deklarasi method membuat penanda berbeda di satu
kelas. Penanda adalah kombinasi nama fungsi/method ditambah daftar parameter.
Dengan penanda berbeda, Java mampu membedakan metode mana yang perlu
dieksekusi dengan mengenali tipe paremeter-parameter yang dilewatkan.
Berikut Contoh dari Overloading pada java.
class Pertambahan{
public void tambah1(){
int a=5, b=10;
System.out.println("Hasil Pertambahann dari metod tambah1 ke-1 = "+(a+b));
}
//Metod tambah1 di overloading dengan 2 parameter (int x, int y)
public void tambah1(int x, int y){
System.out.println("Hasil Pertambahann dari metod tambah1 ke-2 = "+(x+y));
}
public static void main(String [] args){
Pertambahan pp;
pp = new Pertambahan();
pp.tambah1();//memanggil metod tambah1 ke-1
pp.tambah1(5,5);//memanggil metod tambah1 ke-2
}
}
public void tambah1(){
int a=5, b=10;
System.out.println("Hasil Pertambahann dari metod tambah1 ke-1 = "+(a+b));
}
//Metod tambah1 di overloading dengan 2 parameter (int x, int y)
public void tambah1(int x, int y){
System.out.println("Hasil Pertambahann dari metod tambah1 ke-2 = "+(x+y));
}
public static void main(String [] args){
Pertambahan pp;
pp = new Pertambahan();
pp.tambah1();//memanggil metod tambah1 ke-1
pp.tambah1(5,5);//memanggil metod tambah1 ke-2
}
}
Dari contoh di atas, method tambah1 pada class Pertambahan dioverloading, sehingga ada perbedaan parameter antara metod tambah1() dengan metod tambah1(int x, int y).
Output program overloading:
class Nama{
public void Sapa(){
System.out.println("Achmad Cahya Aditya");
}
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("Yesica Dwi Lestari");
}
}
Pada program di atas terlihat bahwa method Sapa() pada super class(class Nama) di override disub class(class Siapa) . Parameter pada kedua class tersebut sama yaitu tidak mempunyai paramater alias kosong, tetapi perbedaannya adalah implementasinya yaitu mencetak kalimat yang berbeda.
Output program overriding:
Output program overloading:
class Nama{
public void Sapa(){
System.out.println("Achmad Cahya Aditya");
}
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("Yesica Dwi Lestari");
}
}
Pada program di atas terlihat bahwa method Sapa() pada super class(class Nama) di override disub class(class Siapa) . Parameter pada kedua class tersebut sama yaitu tidak mempunyai paramater alias kosong, tetapi perbedaannya adalah implementasinya yaitu mencetak kalimat yang berbeda.
Output program overriding:
Tidak ada komentar:
Posting Komentar