Inheritance pada Java

Salah satu bagian penting dalam object oriented programming adalah inheritance / pewarisan. Inheritance adalah proses pewarisan data dan method dari suatu class kepada class yang lain. Secara default inheritance bersifat menyeluruh sehingga semua data dan method diturunkan kepada class yang baru. Kelas yang mewariskan disebut dengan super class sedangkan class turunan disebut dengan sub class. Keuntungan dari inheritance :

• Bersifat reusable. Bayangkan bila anda perlu membuat beberapa class yang mempunyai sifat dasar dan basis class yang sama, dan pada masing masing class tersebut ditambahkan data dan method yang unique. Tanpa inheritance anda harus menyalin semua data dan method dari suatu class. Hal tersebut mungkin masih bisa dilakukan jika basis class anda definisikan sendiri. Namun bagaiman jika anda ingin menggunakan method dari class standard API. Saya rasa itu tidak mungkin.
• Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama. Jika anda ingin melakukan modifikasi suatu data atau method pada semua sub class anda tidak perlu melakukan perubahan pada masing masing sub class. Modifikasi cukup dilakukan pada super class.

Dalam inheritance dikenal dengan istilah overriding. Overidding adalah kemampuan sub class untuk melakukan modifikasi data dan method dari super class. Sebelum anda melakukan overidding terhadap method atau data dari class induk, anda harus memperhatikan aksesibelitas dari data dan method dari super class.[ overidding hanya bisa dilakukan untuk data dan method yang memiliki modifier default, public dan protected.

  • Untuk melakukan inheritance digunakan keyword extends
  • Dalam java hanya mendukung single inheritance
  • data dengan modifier private tidak diwariskan ke sub class
  • constructor super class tidak diwariskan ke sub class

 

Contoh Program :

Program induk : kakek.java

public class kakek
{
protected String namekakek;
protected String address;
public kakek()
{
System.out.println(“\n Program Demo Inheritance”);
System.out.println(“============================”);
System.out.println(“   Masukan construktor kakek  “);
System.out.println(“–Dijalankan oleh class Bapak–”);
namekakek=”Doni wijaya”;
address=”Merauke”;
}
public kakek(String name,String address)
{
this.namekakek=namekakek;
this.address=address;
}
public String getName()
{
return namekakek;
}
public String getAddress()
{
return address;
}
}

 

Program anak/turunan : bapak.java

public class bapak extends kakek
{
protected String namebapak;
protected String addressbapak;
public bapak()
{
System.out.println(“Nama Kakek :”+namekakek);
System.out.println(“Address kakek :”+address);
System.out.println(“\n”);
System.out.println(” Masukan Construktor Bapak “);
System.out.println(“—-dijalankan class cucu—-”);
namebapak=”Ridho Saputra”;
addressbapak=”Yogyakarta”;
}
public bapak(String namebapak,String addressbapak)
{
this.namebapak=namebapak;
this.addressbapak=addressbapak;
}
public String getNama()
{
return namebapak;
}
public String getAddress()
{
return addressbapak;
}
public static void main(String []args)
{
bapak sari=new bapak();
}
}

 

Program anak/turunan : cucu.java

public class cucu extends bapak
{
public cucu()
{
System.out.println(“Nama Bapak  :”+namebapak);
System.out.println(“Address Bapak :”+addressbapak);
}
public static void main(String []args)
{
String namacucu;
cucu lagan=new cucu();
System.out.println(“\nSaya adalah CUCU”);
System.out.println(“Nama Saya : Samuel”);
System.out.println(“”);
}
}

Output Program :

Apabila program bapak.java dijalankan :

Apabila program cucu.java dijalankan :

Disusun Oleh :

Akbar Imanulrachman (https://akbalakbal.wordpress.com)

Noordian Singgih P. (http://meongngedip.blogspot.com)

Kelas 2IA14

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s