#12 INHERITANCE

 

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) mewarisi nama dan umur dari Manusia, tapi punya tambahan kelas, nis.


B. Sintaks Dasar Inheritance (Java)

// Superclass
class Manusia {
    String nama;
    int umur;

    void perkenalkanDiri() {
        System.out.println("Halo, nama saya " + nama);
    }
}

// Subclass
class Siswa extends Manusia {
    int nis;

    void infoSiswa() {
        System.out.println("NIS: " + nis);
    }
}

// Main class
public class Main {
    public static void main(String[] args) {
        Siswa siswa1 = new Siswa();
        siswa1.nama = "Budi";
        siswa1.umur = 16;
        siswa1.nis = 101;

        siswa1.perkenalkanDiri(); // method diwarisi
        siswa1.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 {
    @Override
    void perkenalkanDiri() {
        super.perkenalkanDiri(); // memanggil method superclass
        System.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, Bclass 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: Siti
Gaji: 5000000.0
Tunjangan: 2000000.0
Total Gaji: 7000000.0

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak