Contoh:
class Kendaraan {
..............
public String getJenis() {
System.out.println(“Harga BBM turun”);
}
}
class Motor extends Kendaraan {
..............
public String getJenis() {
System.out.println(“Harga BBM premium 4000 rupiah”);
}
}
NB:
class motor mengextends class kendaraan
class motor melakukan override method di kendaraan namun berbeda implementasi
Kesimpulan:
- Override method merupakan method yang sama persis dengan method yang sudah ada di super kelasnya, biasanya perbedaannya adalah pada implementasi (program body)
- Overidding tidak bisa dilakukan dalam kelas itu sendiri
- 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:
- Class lingkaran melakukan overloading method Luas (beda signature)
- Class tabung mengextends class lingkaran
- Class tabung meng-override method Luas hasil dari overload. Jadi kita juga bisa mengoverride method hasil overloading.
Sumber : bernazlionk.wordpress.com