A. Inheritance (Pewarisan)
Pewarisan sifat (atribut) dan perilaku (method) dari satu kelas ke kelas lain.
Tujuan :
menghindari pengulangan kode dan membuat program lebih terstruktur.
Istilah penting:
| Istilah | Keterangan |
|---|---|
| Superclass / Parent Class | Kelas yang sifatnya diwariskan. |
| Subclass / Child Class | Kelas yang menerima sifat dari superclass. |
| extends | Keyword Java untuk menunjukkan hubungan pewarisan. |
Contoh :
Manusia(superclass) punya sifat:nama,umur.Siswa(subclass) mewarisinamadanumurdariManusia, tapi punya tambahankelas,nis.
B. Sintaks Dasar Inheritance (Java)
// Superclassclass Manusia {String nama;int umur;void perkenalkanDiri() {System.out.println("Halo, nama saya " + nama);}}// Subclassclass Siswa extends Manusia {int nis;void infoSiswa() {System.out.println("NIS: " + nis);}}// Main classpublic class Main {public static void main(String[] args) {Siswa siswa1 = new Siswa();siswa1.nama = "Budi";siswa1.umur = 16;siswa1.nis = 101;siswa1.perkenalkanDiri(); // method diwarisisiswa1.infoSiswa();}}
Catatan: Subclass otomatis mewarisi semua atribut dan method public/protected dari superclass.
C. Method Overriding & Keyword super (Menengah)
- Overriding: Subclass bisa mengganti perilaku method dari superclass.
- super: Memanggil method atau atribut superclass dari subclass.
Contoh:
class Manusia {void perkenalkanDiri() {System.out.println("Halo, saya manusia.");}}class Siswa extends Manusia {@Overridevoid perkenalkanDiri() {super.perkenalkanDiri(); // memanggil method superclassSystem.out.println("Saya juga seorang siswa.");}}public class Main {public static void main(String[] args) {Siswa s = new Siswa();s.perkenalkanDiri();}}
D. Tipe Inheritance
| Tipe | Keterangan | Contoh |
|---|---|---|
| Single Inheritance | 1 subclass → 1 superclass | Siswa extends Manusia |
| Multilevel Inheritance | Subclass mewarisi subclass lain | Mahasiswa extends Siswa extends Manusia |
| Hierarchical Inheritance | Banyak subclass mewarisi 1 superclass | Guru extends Manusia, Siswa extends Manusia |
| Multiple Inheritance | Java tidak mendukung langsung, bisa lewat interface | interface A, B → class C implements A, B |
E. Studi Kasus Sederhana
Kasus: Buat program Karyawan dan Manager di perusahaan.
- Semua karyawan punya
nama,gaji. - Manager mewarisi karyawan tapi punya tambahan
tunjangan.
class Karyawan {String nama;double gaji;void infoKaryawan() {System.out.println("Nama: " + nama);System.out.println("Gaji: " + gaji);}}class Manager extends Karyawan {double tunjangan;void infoManager() {infoKaryawan();System.out.println("Tunjangan: " + tunjangan);System.out.println("Total Gaji: " + (gaji + tunjangan));}}public class Main {public static void main(String[] args) {Manager m = new Manager();m.nama = "Siti";m.gaji = 5000000;m.tunjangan = 2000000;m.infoManager();}}
Outoput:
Nama: SitiGaji: 5000000.0Tunjangan: 2000000.0Total Gaji: 7000000.0
Tags
PBTGM