yaitu merupakan suatu konsep bahwa objek dapat memiliki berbagai bentuk,
sebagai objek dari kelasnya maupun objek dari superkelasnya ( Deitel,
2004 ).
Overriding dan Overloading
• Overriding : terjadi ketika deklarasi method subclass sama ( termasuk
parameter ) dengan method pada superclass.
• Overloading : yaitu penggunaan satu nama untuk beberapa method
yang berbeda ( berbeda parameter )
MakhlukHidup
-Nama : char
-Rumpun : char
+MakhlukHidup(in Nama : char)
+Bernafas()
Binatang
Tumbuhan
+Binatang(in Nama : char)
+Bertumbuh() +Tumbuhan(in Nama : char)
+Berjalan() +Bertumbuh()
+Kecepatan(in Nilai : int)
Karnivora
Herbivora
+Karnivora(in Nama : char)
+Memakan(in Binatang : Binatang) +Herbivora(in Nama : char)
+Kecepatan(in nilai : int) +Memakan(in Tumbuhan : Tumbuhan)
+Kecepatan(in nilai : double) +Kecepatan(in nilai : int)
+Kecepatan(in nilai : double)
Overriding
Overloading
Kelas Abstrak
}
Method Abstrak
• Method abstrak
• Method abstrak adalah method yang memiliki definisi namun tidak memiliki
implementasi
• Method di dalam abstract class boleh berupa method abstrak ataupun bukan.
• Untuk membuat abstract method, hanya menuliskan deklarasi method tanpa body
dan gunakan keyword abstract
Nama kelas dengan
cetak miring merupakan Animal
-jmlKaki : int
simbol kelas abstrak +walk()
+sound()
Kucing
+walk()
+sound()
Ayam
+walk()
+sound()
public abstract class animal {
private int jmlKaki;
public abstract void walk();
public abstract void sound();
}
class kucing extends animal
{
public void walk()
{
System.out.println("Berjalan dengan 4 kaki");
}
public void sound()
{
System.out.println("Meeooo...ong");
}
}
class ayam extends animal
{
public void walk()
{
System.out.println("Berjalan dengan 2 kaki");
}
public void sound()
{
System.out.println("Kuku Ruyuuuukk");
}
}
• Menggunakan abstract class untuk mendefinisi jenis-jenis yang luas dari
behavior yang ada di puncak hirarki class object-oriented programming,
dan menggunakan subclassnya untuk menyediakan detail implementasi
dari abstract class.
Interface
Interface
… Continue
public class Kipas implements
interfaceElektronik {
boolean mesin=false;
int kecepatanKipas=0;
… Continue
Latihan «interface»
interfaceChannelRadio
+gantiChannel(in c : int)
«interface»
interfaceChannelTV
+gantiChannel(in c : int)
«interface»
Ubahlah InterfaceElektronik
+on()
struktur +off()
Kelas
Diagram
disamping ke
Radio
dalam bahasa
-mesin : Boolean
pemrograman -volume : int
+on()
+off()
+gantichannel(in c : int)
Televisi
+perbesarVolume()
+perkecilVolume() -mesin : Boolean
-merk : String
-listrik : Boolean
+Televisi(in merk : String)
+on()
+off()
+gantiChannel(in c : int)
«interface»
interfaceMobil
+NyalakanMesin()
+MatikanMesin()
+TambahkanGerigi()
+TurunkanGerigi()
+TekanGas()
«interface»
interfaceSirine
Latihan
+TekanRem() +NyalakanSirine()
+MatikanSirine()
+GantiSuaraSirine(in Jenis : int)
Mobil
-mesin : bool = false
Untuk
MobilPribadi
MobilTransportasi
-jmlKursi : int
+NyalakanTape() MobilNegara
latihan,
+TambahPenumpang()
+NyalakanTV()
+NyalakanAC() +NyalakanTape()
ubahlah
+NyalakanMesin()
+MatikanMesin()
+NyalakanTV()
+NyalakanAC() struktur
+TambahGerigi()
+TurunkanGerigi() kelas
+TekanGas()
Bus +TekanRem() diagram
+NyalakanTape()
+NyalakanTV() Ambulance
disampi
+NyalakanAC()
+NyalakanMesin() +NyalakanTape() ng ke
+MatikanMesin()
+TambahGerigi()
+NyalakanTV()
+NyalakanAC()
MobilPolisi
dalam
+TurunkanGerigi() +NyalakanMesin() +NyalakanTape()
+TekanGas()
+TekanRem()
+MatikanMesin()
+TambahGerigi()
+NyalakanTV()
+NyalakanAC()
bahasa
+TambahPenumpang() +TurunkanGerigi()
+TekanGas()
+NyalakanMesin()
+MatikanMesin()
pemrogr
+TekanRem()
+NyalakanSirine()
+TambahGerigi()
+TurunkanGerigi()
aman
+MatikanSirine() +TekanGas()
+GantiSirine(in Jenis : int) +TekanRem()
+NyalakanSirine()
+MatikanSirine()
+GantiSirine(in Jenis : int)
+NyalakanRadioHT()
+MatikanRadioHT()