Overriding berbeda dengan overloading. Overriding menuliskan kembali method yang sama persis (method yang sama tetapi implementasinya berbeda dari method yang khusus dari superclass dan memiliki nilai kembali (return) mathod yang di Overriding harus public).
Contoh:
class SiswaTKI { .............. public String getBaju() { System.out.println(“Hitam”); }}
..............
public String getBaju() {
System.out.println(“Hitam dan Hijau”);
}
}
NB:
o class SiswaPRL nengextends SiswaTKI
o class SiswaPRL melakukan override method di SiswaTKI namun berbeda implementasi
Kesimpulan:
o Override method merupakan method yang sama persis dengan method yang sudah ada di super class, biasanya perbedaannya adalah pada implementasi (program body)
o Overidding tidak bisa dilakukan dalam kelas itu sendiri
o Jadi Overidding kerat kaitannya dengan inheritance (pewarisan)
Contoh lain:
class Lingkaran {
double r;
Lingkaran(double r) {
this.r = r;
}
double Luas() {
return Math.PI*this.r*this.r;
}
double Luas(double r) {
this.r = r;
return Math.PI*this.r*this.r;
}
}
class Tabung extends Lingkaran {
double h;
Tabung() {
//konstruktor kelas turunan, ada super() dan diisi nilai awal
super(0);
}
double Luas(double r) {
//overriding (method and parameter sama)
this.r = r;
return Math.PI * this.r * this.r * this.h;
}
}
NB:
o Class lingkaran melakukan overloading method Luas (beda signature)
o Class tabung mengextends class lingkaran
o Class tabung meng-override method Luas hasil dari overload. Jadi kita juga biosa mengoverride method hasil overloading juga
0 komentar:
Posting Komentar
Anda bertanya, saya akan mencoba menjawabnya ~,~