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
- 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)
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 biosa mengoverride method hasil overloading juga
Tidak ada komentar:
Posting Komentar