11 Hukum Inheritance Pada Java Serta Contohnya

Hallo gan, sehabis anda sebelumnya mengetahui apa itu inheritance juga konsep-konsep dasarnya yang perlu diketahui, maka kali ini akan dibahas mengenai 12 hukum inheritance pada Java beserta dengan contoh-contohnya sehingga anda akan gampang mengaplikasikannya pada dan memahaminya dikala melaksanakan coding Java.

 hukum inheritance pada Java beserta dengan teladan 11 Aturan Inheritance Pada Java Serta Contohnya

Aturan dan Contoh Inheritance Java

Berikut ini ialah hukum dan teladan pada inheritance yang perlu anda ketahui.

1. Semua class inherit dari class objek secara pribadi ataupun tidak langsung

Setiap class yang dibentuk pada Java inherit dari class Objek. Meskipun tidak dinyatakan secara eksplisit.

Contoh:

public class Mobil {   } 


Secara implisit:

public class Mobil extends Object {   }  

2. Dalam inheritance, suatu contructor tidak sanggup diwariskan

Constructor dari superclass tidak sanggup diwariskan kepada subclass, namun sanggup dipanggil dengan menggunakan keyword super().

Bila sebuah constructor secara eksplisit tidak memanggil constructor dari superclass, maka compiler secara otomatis akan memanggil constructor tanpa argumen secara implisit.

Contoh:

public class Kendaraan {    //Ini constructor tanpa argument  public Kendaraan(){   System.out.println("Ini kendaraan");  }   }  


public class Mobil extends Kendaraan {    public Mobil(){   super();//Sebenarnya super() ini tidak harus ditulis, alasannya ialah dipanggil secara implisit oleh compiler  }  } 

Tapi jikalau superclass mempunyai constructor dengan argumen tertentu dan subclass tidak memanggil constructor tersebut secara ekplisit maka compile error akan terjadi.

Contoh:

public class Kendaraan {    protected String nama;    public Kendaraan(String nama){   this.nama = nama;  } }  


public class Mobil extends Kendaraan {  String brand;    public Mobil(String brand){   super(brand);   this.brand = brand;  }  } 


Contoh arahan berikut ini akan menjadikan compile error:

public class Mobil extends Kendaraan {  String brand;    public Mobil(String brand){   this.brand = brand;  }  } 

3. Acces modifier pada inheritance


Pada inheritance, member dengan acces modifier private tidak sanggup diwariskan. Sedangkan member default sanggup diwariskan asalkan berada dalam package yang sama, jadi di luar itu tidak sanggup diwariskan. Untuk member protected hanya sanggup diakses oleh subclass melalui inheritance baik itu pada package yang sama ataupun berbeda. Terakhir ialah member public yang sanggup diwariskan di mana saja.

4. Mengakses member dari superclass


Untuk mengakses member dari superclass maka keyword super sanggup digunakan.

Contoh:

public class Kendaraan {   protected void bergerak(){   System.out.println("Kendaraan bergerak!");  } } 


public class Mobil extends Kendaraan {    protected void bergerak(){   System.out.println("Mobil bergerak!");  }    public void test(){   super.bergerak();   this.bergerak();  } } 

Bisa dilihat baik itu superclass ataupun subclass mempunyai method yang sama yaitu bergerak(), ini ialah overriding. Kaprikornus class Mobil sanggup memanggil method bergerak milik class Kendaraan dengan keyword super().

5. Referensi dan deklarasi objek

Ini ialah bab yang menarik dari inheritance dimana rujukan dari superclass sanggup menjadi rujukan objek dari subclass.




Perhatikan teladan berikut ini:

public class Kendaraan {   protected void bergerak(){     } } 


public class Mobil extends Kendaraan {    protected void injakGas(){     } } 


class Test{    public static void main(String[] args) {      Kendaraan kendaraan = new Mobil();     } } 

Aturannya ialah rujukan objek superclass yang berada disebelah kiri sanggup menjadi rujukan untuk sub type yang berada disebelah kanan.

Selanjutnya, bila dilanjutkan dengan pemanggilan method:

class Test{    public static void main(String[] args) {      Kendaraan kendaraan = new Mobil();      kendaraan.bergerak();//bisa dilakukan      kendaraan.injakGas();//tidak sanggup dilakukan  } } 

Ketika objek memanggil method milik superclass maka hal ini sanggup dilakukan, ibarat pada kendaraan.bergerak(). Namun, dikala subclass mempunyai method baru, maka method tersebut tidak sanggup dipanggil melalui rujukan dari superclass, ibarat kendaraan.injakGas().

6. Multi inheritance pada interface


Dalam Java, multi inheritance pada interface diizinkan untuk dilakukan. Interfaces itu sendiri merupakan 100% class abstract.

Contoh:

public interface A {    public void methodA();  } 

public interface B {    public void methodB();  } 

public interface C extends A,B {    public void methodC();  } 

public class D implements A, B, C {   @Override  public void methodA() {     }   @Override  public void methodB() {     }   @Override  public void methodC() {        }  } 

Hal di atas sanggup dilakukan alasannya ialah interfaces tidak mempunyai method yang konkrit sehingga tidak menjadikan kerancuan.

7. Tidak boleh multi inheritance pada class


Java tidak membolehkan suatu class inherit pada dua class atau lebih secara langsung. Ini dikarenakan jikalau dilakukan akan menjadikan keraguan. Dan jikalau dilakukan akan menjadikan problem yang dikenal dengan Deadly Diamond of Death.

8. Aturan dikala suatu interface inherit dari interface lainnya

Ketika suatu interface ialah inherit dari interface lainnya maka sub interface tersebut mewarisi semua method dari super interface. Kemudian, sub interface itu mempunyai kebebasan apakah akan menggunakan semua method tersebut atau tidak.

Contoh:

public interface Workable {    public void workA();  public void workB();  public void workC();  } 

public interface Repairable extends Workable {    public void workA();//mengimplementasikan method workA()  public void serviceA();  public void serviceB();  public void serviceC();  } 

9. Inheritance dan interface pada class

Dalam Java, dikala class inherit dari class lainnya, maka secara bersamaan juga sanggup mengimplementasikan interface.

Contoh:

public interface dapatDigerakkan {    public void bergerak();  } 

public class KendaraanRodaDua {   protected void melaju(){     }    public void berhenti(){     } } 

public class Motor extends KendaraanRodaDua implements dapatDigerakkan {   @Override  public void bergerak() {     }     } 

10. Aturan pada acces modifier

Acces modifier public dan protected dari member superclass akan diwariskan pada subclass dikala inheritance (extends) dilakukan. Sedangkan untuk member class dengan acces modifier default hanya akan diwariskan dikala berada dalam package yang sama.

11. Inheritance pada class abstract dan interface

Ketika suatu class abstract mengimplementasikan interface maka class abstract tersebut tidak perlu meng-override method dari interface tersebut. Tapi, class konkrit yang pertama kali inherit dari class abstract tersebut harus meng-override method-method tersebut.

Contoh:

public interface dapatDigerakkan {    public void berhenti();  public void bergerak();  public void startMesin();  public void stopMesin();  } 


public abstract class KendaraanRodaDua implements dapatDigerakkan {    public void startMesin(){   System.out.println("Mesin kendaraan dinyalakan!");  }    public void stopMesin(){   System.out.println("Mesin kendaraan dimatikan!");  }  } 


public class Motor extends KendaraanRodaDua {   @Override  public void berhenti() {   System.out.println("Motor berhenti!");  }   @Override  public void bergerak() {   System.out.println("Motor bergerak!");  }   } 

Pada teladan di atas class KendaraanRodaDua ialah class abstract.  Kaprikornus class ini sanggup mengimplementasikan 2 method dari interface dapatDigerakkan, yaitu method startMesin() dan stopMesin(). Oleh alasannya ialah itu, 2 method lainnya yaitu berhenti() dan bergerak() dari interface itu harus di implementasikan pada class konkrit yaitu class Motor.

Tapi, dikala class abstract tidak mengimeplementasikan sama sekali method dari interface maka class konkrit yang pertama kali inherit dari class abstract tersebut harus mengimplementasikan semua method dari interface tersebut.

Sebagai embel-embel yang juga penting diketahui, dikala suatu class konkrit (non-abstract) mengimplementasikan interface maka class tersebut wajib mengimplentasikan seluruh method-method dari interface tersebut. Arti mengimplemntasikan ialah menawarkan method dari interface itu body alasannya ialah semua method-method yang terdapat pada interface ialah method abstract yang tidak mempunyai body method.


Demikianlah klarifikasi mengeni aturan-aturan pada inheritance beserta dengan contohnya. Semoga sanggup membantu anda yang sedang memahami topik yang serupa dikala mencar ilmu Java.

Belum ada Komentar untuk "11 Hukum Inheritance Pada Java Serta Contohnya"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel