Class ini memiliki method abstrak yang mewajibkan kelas turunannya Manusia, Hewan, Tumbuhan untuk mendefinisikan cara kerjanya sendiri.
Code:
Soal 2
Simulasi Foxes and Rabbits memiliki duplikasi kode yang banyak antara kelas Fox dan Rabbit. Keduanya memiliki umur, lokasi, status hidup/mati, dan referensi ke Field. Untuk mengubahnya menjadi struktur Abstract Class, perlu membuat superclass bernama Animal untuk menampung kode yang sama.
abstract class MakhlukHidup {
protected String nama;
public MakhlukHidup(String nama) {
this.nama = nama;
}
public void makan() {
System.out.println(nama + " sedang memproses nutrisi untuk bertahan hidup.");
}
public abstract void bernafas();
}
class Manusia extends MakhlukHidup {
public Manusia(String nama) {
super(nama);
}
@Override
public void bernafas() {
System.out.println(nama + " bernafas menggunakan paru-paru.");
}
}
class Hewan extends MakhlukHidup {
public Hewan(String nama) {
super(nama);
}
@Override
public void bernafas() {
System.out.println(nama + " bernafas.");
}
}
class Tumbuhan extends MakhlukHidup {
public Tumbuhan(String nama) {
super(nama);
}
@Override
public void bernafas() {
System.out.println(nama + " bernafas melalui stomata dan lentisel.");
}
}
public class MainMakhlukHidup {
public static void main(String[] args) {
Manusia andi = new Manusia("Andi");
Hewan kucing = new Hewan("Kucing");
Tumbuhan bunga = new Tumbuhan("Bunga Matahari");
andi.makan();
andi.bernafas();
kucing.makan();
kucing.bernafas();
bunga.makan();
bunga.bernafas();
}
}