Dalam objek memungkin memiliki beberapa persamaan dengan objek yang lainnya, baik itu berupa atribut ataupun metode. Misalkan, sepeda gunung dan sepeda onthel merupakan beberapa jenis sepeda yang sama- sama memiliki current speed dan gear. Dari berbagai jenis sepeda tersebut memiliki tambahan - tambahan atribut, sepeda onthel memiliki keranjang dan tambahan jok sedangkan sepeda elektrik mempunyai status on/off dan mengecilkan gear.
Penggunaan inheritance adalah sebagai berikut :
/* Buat kelas sepeda (SuperClass) */
public class Sepeda {
int speed = 0;
int gear = 1;
void changeGear(int newValue){
gear = newValue;
}
void speedUp(int increment){
speed = speed + increment;
}
void applyBrakes(int decrement){
speed = speed - decrement;
}
void printStates(){
System.out.println("Speed : " + speed +
"gear : " + gear);
}
}
/* Buat kelas SepedaOntel (SubClass) */
public class SepedaOntel extends Sepeda{
boolean Keranjang = false;
boolean doubleJok = false;
String stKeranjang;
String stDoubleJok;
void changeStatusKeranjang(boolean Keranjang){
this.Keranjang = Keranjang;
if(this.Keranjang == true) {
stKeranjang = "ada";
}
else {
stKeranjang = "tidak ada";
}
}
void changeStatusDoubleJok(boolean doubleJok){
this.doubleJok = doubleJok;
if(this.doubleJok == true) {
stDoubleJok = "ada";
}
else {
stDoubleJok = "tidak ada";
}
}
void printStates2(){
System.out.println("Keranjang : " + stKeranjang + " " +
"Status Jok : " + stDoubleJok);
}
}
/* Buat kelas SepedaDemo */
public class SepedaDemo {
public static void main(String[] args) {
// Objek sepeda spd1 dan spd2
Sepeda spd1 = new Sepeda();
SepedaOntel spd2 = new SepedaOntel();
// Pemanggilan method untuk objek
spd1.speedUp(10);
spd1.applyBrakes(5);
spd1.changeGear(2);
spd1.printStates();
spd2.speedUp(10);
spd2.applyBrakes(5);
spd2.changeGear(2);
spd2.changeStatusKeranjang(true);
spd2.changeStatusDoubleJok(false);
spd2.printStates();
spd2.printStates2();
}
}
Dan hasilnya :
run:
Speed : 5 gear : 2
Speed : 5 gear : 2
Keranjang : ada
Status Jok : tidak ada
BUILD SUCCESSFUL (total time: 1 second)
Tidak ada komentar:
Posting Komentar