SlideShare a Scribd company logo
1 of 12
INHERITANCE
POLYMORFISME
KELAS ABSTRAK
Modul 4 Pemrograman JavaDevi Adi Nufriana & Baidowi
INHERITANCE
Konsep Hierarki, Hubungan orangtua dan
anak.
Sub Class / ChildSub Class / Child
[public] class SubKelas extends
SuperKelas {
....
}
Bentuk Umum Penulisannya
Java hanya mengenal dan menunjang
single inheritance.
NOTE
Super Class / Parent
Konsep hubungan antar super class dan
subclass
 Kelas dengan modifier “final” tidak dapat dijadikan super-kelas.
 Atribut dan metode yang bukan-private secara otomatis diwariskan ke sub-kelas kecuali yang di-override
(dideklarasi ulang oleh sub-kelas).
 Jika metode di definisikan ulang pada sub-kelas dengan parameter yang sama pada super-kelas, Ini disebut
dengan “override” metode yang ada pada super-kelasnya.
 Konstruktor tidak diwariskan, tetapi dapat dipanggil atau dijalankan pada konstruktor di sub-kelas dengan
menggunakan bentuk super(parameter).
 Jika ada sebuah atribut dengan nama sama dengan nama atribut yang ada pada super-kelasnya, atribut yang
di super-kelas tetap ada tetapi disembunyikan. Untuk mengakses atribut yang tersembunyikan gunakan kata-
kunci prefiks “super”.
public class Hewan {
public int Kaki;
public void makan() {
System.out.println(“Hewan Butuh Makan”)
}
}
Superclass
public class Kuda extends Hewan {
Kuda(int kaki){
Kaki = 4;
}
}
Example
SubClass
Hewan
Kuda Kucing
OVERLOADING
Metode dimana dalam satu kelas yang namanya
sama tetapi berbeda signature-nya (parameternya).
Overload  Konstruktor
OVERIDING
Dua metode dimana yang satu di super-kelas dan
satunya di sub-kelas dengan nama yang sama, tipe
data hasil sama, dan signature (atau parameter) yang
sama juga
Override  toString() dan equals()
public class Mahasiswa{
private int nomorInduk;
private String nama;
private double ipk;
public Mahasiswa(int ni, String nm,
double ip){
nomorInduk = ni;
nama = nm;
ipk = ip;
}
public Mahasiswa(int ni, String nm){
nomorInduk = ni;
nama = nm;
ipk = 0.0;
}
public void keterangan(){
System.out.println(“Belum Lulus”);
}
....
}
Super Class Sub Class
public class MahasiswaPasca extends
Mahasiswa{
private String penelitian;
private String dosenPembimbing;
public void keterangan(){
System.out.println(“LULUS”);
}
.....
}
Note :
Warna Merah Overloading
Warna Biru Overiding
Konstruktor Sub Kelas
Untuk menginisialisasi atribut obyek yang ada pada super-
kelas, konstruktor sub-kelas harus memanggil sebuah
konstruktor dari super-kelas dengan bentuk:
Super(parameter)
Note:
Statemen ini harus dilakukan paling awal
public class MahasiswaPasca extends Mahasiswa{
private String penelitian;
private String dosenPembimbing;
public MahasiswaPasca(int nim, String
nama, String bs, double ipk, String
penelitian, String dp){
super(nim,nama,bs,ipk);
this.penelitian = penelitian;
this.dosenPembimbing = dp;
}
.....
}
Polymorphism
Dapat meningkatkan generalisasi program
dan kemudahan dibaca.
Upcasting Downcasting
Mereferensi obyek dari jenis sub-kelas dengan deklarasi variabel
menggunakan jenis super-kelas
Sebuah obyek dibuat dengan super-Kelas namun direferensi
oleh variabel dengan tipe kelas sub-Kelas.
SuperKelas obyek = new SubKelas(parameter);
SuperKelas obyekSuper = new SuperKelas(parameter);
SubKelas obyekSub = (SubKelas) obyekSuper;
Jika obyekSub mengakses metode yang hanya ada pada sub-kelas, karena jenis referensinya adalah SubKelas,
maka tidak akan menghasilkan compile-error. Tetapi hal ini dapat menimbulkan runtime-error berupa
“java.lang.ClassCastException”.
if(obyekSub instanceOf SubKelas) {
obyekSub.metodeSubKelas(parameter);
}
Class Kucing extends Hewan {
Public void suara() {
System.out.println(“Meow”);
}
}
SubClass
Class Program {
Public static void main(String args []) {
Hewan kuda = new kuda();
Hewan kucing = new kucing();
Kuda.suara();
Kucing.suara();
}
MainClass
public class Hewan {
public void tidur(){
System.out.println("Tidur");
}
}
SuperClass
class Program {
public static void main (String args []){
Hewan kambing = new Hewan();
Kambing kb = (Kambing) kambing;
kb.tidur();
}
MainClass
Kelas Abstrak
Di sub-kelas, kita boleh (opsional) melakukan
override terhadap metode yang ada pada
super-kelas. Tetapi adakalanya di mana ada
situasi di mana super-kelas akan memaksa
agar sub-kelas meng-override metode
tertentu, karena metode tersebut tidak dapat
diimplementasikan pada super-kelas.
Karyawan
nomorIndukKaryawan
menghitungGaji()
Dosen
jumlahSKS
honorSKS
menghitungGaji()
Staff
gajiPokok
totalJam
menghitungGaji()
public abstract class Karyawan {
public Karyawan(int nik, String nama){
this.nomorIndukKaryawan = nik;
this.nama = nama;
}
...
public abstract double menghitungGaji();
...
} Kelas Abstrak
public class Staff extends Karyawan{
public double menghitungGaji(){
double gaji = 0.0;
if(totalJam > 180) {
gaji = (180 * gajiPokok) +
((totalJam - 180) * (1.5 *
gajiPokok));
} else {
gaji = totalJam * gajiPokok;
}
return gaji/180.0;
}
...
}
SubClass
public class Dosen extends Karyawan {
public double menghitungGaji(){
double gaji = jumlahSKS * 4.5 *
honorSKS;
return gaji;
}
...
}
Kita tidak boleh membuat obyek dari jenis kelas abstrak
Karyawan ahmad = new Karyawan(65321,”Ahmad”);
Boleh digunakan sebagai referensi (atau variabel) yang merujuk pada
sub-kelas yang bukan abstrak
Karyawan ahmad = new Staff(65321,”Ahmad”);
MAKASIH

More Related Content

What's hot

What's hot (13)

Pewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVAPewarisan (inheritance) pada JAVA
Pewarisan (inheritance) pada JAVA
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
12. polymorphisme
12. polymorphisme12. polymorphisme
12. polymorphisme
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
istilah inheritance pada Pemrograman Berorientasi Object
istilah inheritance pada Pemrograman Berorientasi Objectistilah inheritance pada Pemrograman Berorientasi Object
istilah inheritance pada Pemrograman Berorientasi Object
 
Tugas 5 Rekayasa Web
Tugas 5 Rekayasa WebTugas 5 Rekayasa Web
Tugas 5 Rekayasa Web
 
Tugas 5 rekayasa web Freddy Ferdiansyah 1412510586
Tugas 5 rekayasa web Freddy Ferdiansyah 1412510586Tugas 5 rekayasa web Freddy Ferdiansyah 1412510586
Tugas 5 rekayasa web Freddy Ferdiansyah 1412510586
 
8. konsep class, object dan method
8. konsep class, object dan method8. konsep class, object dan method
8. konsep class, object dan method
 
Tugas aplinet meresum
Tugas aplinet meresumTugas aplinet meresum
Tugas aplinet meresum
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
 
17419 6 override
17419 6 override17419 6 override
17419 6 override
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316
 

Similar to Pemrograman Java - Inheritance

Modul pratikum pbo - inheritance
Modul pratikum pbo - inheritanceModul pratikum pbo - inheritance
Modul pratikum pbo - inheritance
rahmantoyuri
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
rahmi wahyuni
 

Similar to Pemrograman Java - Inheritance (20)

Debbiemistikaweni 1412510982 tugas5
Debbiemistikaweni 1412510982 tugas5Debbiemistikaweni 1412510982 tugas5
Debbiemistikaweni 1412510982 tugas5
 
Tugas 5 rekweb Ika Sulistiyani
Tugas 5 rekweb Ika Sulistiyani Tugas 5 rekweb Ika Sulistiyani
Tugas 5 rekweb Ika Sulistiyani
 
Tugas 5
Tugas 5Tugas 5
Tugas 5
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
 
365 4 inheritance
365 4 inheritance365 4 inheritance
365 4 inheritance
 
Pbo
PboPbo
Pbo
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
 
Tugas 5 – Rekayasa Web (KU) - 1311511057 - Raden Doni Wijoyo
Tugas 5 – Rekayasa Web (KU) - 1311511057 - Raden Doni WijoyoTugas 5 – Rekayasa Web (KU) - 1311511057 - Raden Doni Wijoyo
Tugas 5 – Rekayasa Web (KU) - 1311511057 - Raden Doni Wijoyo
 
Tugas individu pertemuan 05 (05042016)
Tugas individu pertemuan 05 (05042016)Tugas individu pertemuan 05 (05042016)
Tugas individu pertemuan 05 (05042016)
 
Tugas 5 rekayasaweb [1412511642] [sri susanto]
Tugas 5 rekayasaweb [1412511642] [sri susanto]Tugas 5 rekayasaweb [1412511642] [sri susanto]
Tugas 5 rekayasaweb [1412511642] [sri susanto]
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
Rekweb 5
Rekweb 5Rekweb 5
Rekweb 5
 
Modul pratikum pbo - inheritance
Modul pratikum pbo - inheritanceModul pratikum pbo - inheritance
Modul pratikum pbo - inheritance
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)
 
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
 
Rekweb5 hilmi afifi-1512510213
Rekweb5 hilmi afifi-1512510213Rekweb5 hilmi afifi-1512510213
Rekweb5 hilmi afifi-1512510213
 
Tugas 5 - Rekayasa Web
Tugas 5 - Rekayasa WebTugas 5 - Rekayasa Web
Tugas 5 - Rekayasa Web
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
PPT_overloading.pptx
PPT_overloading.pptxPPT_overloading.pptx
PPT_overloading.pptx
 
pemrograman berorientasi objek
pemrograman berorientasi objekpemrograman berorientasi objek
pemrograman berorientasi objek
 

Recently uploaded

Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
ssuser35630b
 
aksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajaraksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajar
HafidRanggasi
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
dpp11tya
 

Recently uploaded (20)

UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING M...
 
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah DasarPPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
PPT Penjumlahan Bersusun Kelas 1 Sekolah Dasar
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
aksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajaraksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajar
 
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptxPPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
PPT AKUNTANSI KEUANGAN MENENGAH DUA.pptx
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptxPPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
PPT PERUBAHAN LINGKUNGAN MATA PELAJARAN BIOLOGI KELAS X.pptx
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 

Pemrograman Java - Inheritance

  • 1. INHERITANCE POLYMORFISME KELAS ABSTRAK Modul 4 Pemrograman JavaDevi Adi Nufriana & Baidowi
  • 2. INHERITANCE Konsep Hierarki, Hubungan orangtua dan anak. Sub Class / ChildSub Class / Child [public] class SubKelas extends SuperKelas { .... } Bentuk Umum Penulisannya Java hanya mengenal dan menunjang single inheritance. NOTE Super Class / Parent
  • 3. Konsep hubungan antar super class dan subclass  Kelas dengan modifier “final” tidak dapat dijadikan super-kelas.  Atribut dan metode yang bukan-private secara otomatis diwariskan ke sub-kelas kecuali yang di-override (dideklarasi ulang oleh sub-kelas).  Jika metode di definisikan ulang pada sub-kelas dengan parameter yang sama pada super-kelas, Ini disebut dengan “override” metode yang ada pada super-kelasnya.  Konstruktor tidak diwariskan, tetapi dapat dipanggil atau dijalankan pada konstruktor di sub-kelas dengan menggunakan bentuk super(parameter).  Jika ada sebuah atribut dengan nama sama dengan nama atribut yang ada pada super-kelasnya, atribut yang di super-kelas tetap ada tetapi disembunyikan. Untuk mengakses atribut yang tersembunyikan gunakan kata- kunci prefiks “super”.
  • 4. public class Hewan { public int Kaki; public void makan() { System.out.println(“Hewan Butuh Makan”) } } Superclass public class Kuda extends Hewan { Kuda(int kaki){ Kaki = 4; } } Example SubClass Hewan Kuda Kucing
  • 5. OVERLOADING Metode dimana dalam satu kelas yang namanya sama tetapi berbeda signature-nya (parameternya). Overload  Konstruktor OVERIDING Dua metode dimana yang satu di super-kelas dan satunya di sub-kelas dengan nama yang sama, tipe data hasil sama, dan signature (atau parameter) yang sama juga Override  toString() dan equals()
  • 6. public class Mahasiswa{ private int nomorInduk; private String nama; private double ipk; public Mahasiswa(int ni, String nm, double ip){ nomorInduk = ni; nama = nm; ipk = ip; } public Mahasiswa(int ni, String nm){ nomorInduk = ni; nama = nm; ipk = 0.0; } public void keterangan(){ System.out.println(“Belum Lulus”); } .... } Super Class Sub Class public class MahasiswaPasca extends Mahasiswa{ private String penelitian; private String dosenPembimbing; public void keterangan(){ System.out.println(“LULUS”); } ..... } Note : Warna Merah Overloading Warna Biru Overiding
  • 7. Konstruktor Sub Kelas Untuk menginisialisasi atribut obyek yang ada pada super- kelas, konstruktor sub-kelas harus memanggil sebuah konstruktor dari super-kelas dengan bentuk: Super(parameter) Note: Statemen ini harus dilakukan paling awal public class MahasiswaPasca extends Mahasiswa{ private String penelitian; private String dosenPembimbing; public MahasiswaPasca(int nim, String nama, String bs, double ipk, String penelitian, String dp){ super(nim,nama,bs,ipk); this.penelitian = penelitian; this.dosenPembimbing = dp; } ..... }
  • 8. Polymorphism Dapat meningkatkan generalisasi program dan kemudahan dibaca. Upcasting Downcasting Mereferensi obyek dari jenis sub-kelas dengan deklarasi variabel menggunakan jenis super-kelas Sebuah obyek dibuat dengan super-Kelas namun direferensi oleh variabel dengan tipe kelas sub-Kelas. SuperKelas obyek = new SubKelas(parameter); SuperKelas obyekSuper = new SuperKelas(parameter); SubKelas obyekSub = (SubKelas) obyekSuper; Jika obyekSub mengakses metode yang hanya ada pada sub-kelas, karena jenis referensinya adalah SubKelas, maka tidak akan menghasilkan compile-error. Tetapi hal ini dapat menimbulkan runtime-error berupa “java.lang.ClassCastException”. if(obyekSub instanceOf SubKelas) { obyekSub.metodeSubKelas(parameter); }
  • 9. Class Kucing extends Hewan { Public void suara() { System.out.println(“Meow”); } } SubClass Class Program { Public static void main(String args []) { Hewan kuda = new kuda(); Hewan kucing = new kucing(); Kuda.suara(); Kucing.suara(); } MainClass public class Hewan { public void tidur(){ System.out.println("Tidur"); } } SuperClass class Program { public static void main (String args []){ Hewan kambing = new Hewan(); Kambing kb = (Kambing) kambing; kb.tidur(); } MainClass
  • 10. Kelas Abstrak Di sub-kelas, kita boleh (opsional) melakukan override terhadap metode yang ada pada super-kelas. Tetapi adakalanya di mana ada situasi di mana super-kelas akan memaksa agar sub-kelas meng-override metode tertentu, karena metode tersebut tidak dapat diimplementasikan pada super-kelas. Karyawan nomorIndukKaryawan menghitungGaji() Dosen jumlahSKS honorSKS menghitungGaji() Staff gajiPokok totalJam menghitungGaji()
  • 11. public abstract class Karyawan { public Karyawan(int nik, String nama){ this.nomorIndukKaryawan = nik; this.nama = nama; } ... public abstract double menghitungGaji(); ... } Kelas Abstrak public class Staff extends Karyawan{ public double menghitungGaji(){ double gaji = 0.0; if(totalJam > 180) { gaji = (180 * gajiPokok) + ((totalJam - 180) * (1.5 * gajiPokok)); } else { gaji = totalJam * gajiPokok; } return gaji/180.0; } ... } SubClass public class Dosen extends Karyawan { public double menghitungGaji(){ double gaji = jumlahSKS * 4.5 * honorSKS; return gaji; } ... } Kita tidak boleh membuat obyek dari jenis kelas abstrak Karyawan ahmad = new Karyawan(65321,”Ahmad”); Boleh digunakan sebagai referensi (atau variabel) yang merujuk pada sub-kelas yang bukan abstrak Karyawan ahmad = new Staff(65321,”Ahmad”);

Editor's Notes

  1. Salah satu fitur yang sangat baik dari Java adalah kegunaan kembali (re-usability). Jika sebuah kelas sudah didefinisikan dan dibuat, kelas tersebut dapat digunakan oleh aplikasi apapun ketika metode-metode dibutuhkan. Jika kita hendak membuat sebuah kelas, sementara ada kelas yang sudah ada dan memilik fitur-fitur yang hampir (atau mendekati) kebutuhan yang kita harapkan, kita tidak harus membuat Kelas dari awal lagi, melainkan kita memanfaatkan kelas yang sudah ada dan menambahkan atau mengubah beberapa atribut dan/atau metode tambahan.
  2. Merupakan metode untuk mengimplementasikan hierarki public class Test {   public static void main (String args []){ Binatang binatang1 = new Kambing(); Kambing kambing = (Kambing) binatang1; kambing.bergerak(); kambing.makan(); Binatang binatang2 = new Sapi(); Sapi sapi = (Sapi) binatang2; sapi.bergerak(); sapi.makan(); } }
  3. public class Peternak { public void memberiMakan(Binatang a){ a.bergerak(); a.makan(); if (a instanceof Kambing){ Kambing kambing = (Kambing) a; kambing.makan(); } } }