blog / java · April 7, 2017

Belajar Java Dasar(Pewarisan Kelas)

Pewarisan merupakan mekanisme dimana sebuah kelas dapat mewarisi seluruh atribut atau metode milik kelas  lain dengan ketentuan tertentu. Misal ada sebuah kelas  Orang dengan attribut nama dan alamat. Kemudian ada kelas Pegawai dengan attribut nip, nama dan alamat.

public class Orang{ 
   private String nama; 
   private String alamat; 
   
   public void ubahNama(String nama){ 
      this.nama = nama; 
   } 
   public String ambilNama(){ 
      return nama; 
   } 
   public void ubahAlamat(String alamat){ 
      this.alamat = alamat; 
   } 
   public String ambilAlamat(){ 
      return alamat; 
   }
}
public class Pegawai{ 
   private String nip; 
   private String nama; 
   private String alamat; 
   public void ubahNip(String nip){
      this.nip = nip;
   } 
   public String ambilNip(){
      return nip; 
   } 
   public void ubahNama(String nama){
      this.nama = nama; 
   } 
   public String ambilNama(){ 
      return nama; 
   } 
   public void ubahAlamat(String alamat){ 
      this.alamat = alamat; 
   } 
   public String ambilAlamat(){ 
      return alamat; 
   } 
}

Pada kode diatas kita bisa membandingkan antara kelas Orang dengan kelas Pegawai memiliki beberapa attribut dan metode yang sama. Pada kasus ini yang sama yaitu attribut nama dan alamat, kemudian metode seperti ubahNama(), ambilNama(), ubahAlamat() dan ambilAlamat(). Artinya banyak terjadi duplikasi kode, oleh karena itu lebih baik kelas tersebut digabungkan menggunakan pewarisan, yaitu dengan membuat  kelas Orang diturunkan  menjadi kelas Pegawai, karena semua attribut dan metode di kelas Orang ada di Kelas Pegawai, namun tidak semua attribut di kelas Pegawai ada di kelas Orang.

Untuk membuat bahwa kelas Pegawai adalah turunan dari kelas Orang kita dapat menggunakan kata kunci extends. Dengan begitu kita hanya perlu mengubah kelas Pegawai menjadi sebagai berikut:

public class Pegawai extends Orang{ 
   private String nip; 
   public void ubahNip(String nip){ 
      this.nip = nip; 
   }
   public String ambilNip(){
      return nip; 
   }
}

Walaupun kelas Pegawai tidak memiliki attribut dan metode untuk nama dan alamat, namun sebenarnya Pegawai tersebut memilikinya, karena Pegawai merupakan turunan dari kelas Orang, sehingga seluruh sifat dari kelas Orang ada pada kelas Pegawai.

public class Main{ 
   public static void main(String []args){ 
      Pegawai pegawai = new Pegawai();
      pegawai.ubahNama(“Kutu Gondrong”); 
      pegawai.ubahAlamat(“Dolok Sanggul”); 
      pegawai.ubahNip(“11041993”); 
   }
}