class Main {
public static void main(String[] args) {
Hewan test = new Hewan(4, "Kuning"); // Hewan adalah class, test adalah object
test.suara();
Kocheng nyancat = new Kocheng(4, "Merah"); // Kocheng adalah class, nyancat adalah object
nyancat.suara();
nyancat.suara("Nyan~");
}
}
class Hewan {
int kaki; // nama property
String warna;
public Hewan(int kaki, String warna) { // parameter menggunakan nama property yang sama
this.kaki = kaki; // this. digunakan untuk mengatasi permasalahan kesamaan nama dengan merujuk
this.warna = warna; // pada nama property yang telah dibuat pada class
}
public void suara() { // method awal. nanti bakal dibuah ubah pas di subclass
System.out.println("Silahkan imajinasikan saja suaranya :3");
}
}
class Kocheng extends Hewan {
public Kocheng(int kaki, String warna) {
super(kaki, warna);
}
public void suara() { //Override dari method class Hewan
System.out.println("Guk Guk...");
System.out.println("Ada yang ngk bener :/");
}
public void suara(String bunyi) { // Overload dengan menambahkan parameter bunyi
System.out.println(bunyi);
}
}