Belajar Pemrograman Java Dari Dasar

Memahami Method Overriding Dan Aturannya Pada Java

Hallo guys, sebelumnya anda sudah mengetahui mengenai apa itu inheritance dan juga pengertian abstraction. Class yang mewariskan pada inheritance disebut super class dan yang diwariskan adalah sub class.

Jadi, ketika super class ini memiliki method dan kemudian method ini dideklarasikan di sub class maka di sebut dengan method overriding.

Dengan demikian, subclass tersebut akan memberikan implementasi tersendiri pada method yang sudah disediakan oleh super class tersebut.

Dalam Java :

  • Overriden adalah method yang terdapat di super class
  • Overriding adalah method yang terdapat di sub class
Kali ini kita akan melihat mengenai method overriding dan mengapa kita menggunakannya.


overriding method java


Contoh Simpel Method Overriding

Misalkan terdapat 2 class, yang terdiri dari superclass dan subclass seperti di bawah ini.

//class Kendaraan adalah super class
public class Kendaraan {
 
 //overriden method
 void bergerak(){
  System.out.println("Kendaraan bergerak!");
 }

}


//class Mobil sebagai sub class
public class Mobil extends Kendaraan {
 
 //overriding method
 void bergerak(){
  System.out.println("Mobil bergerak");
 }
 
 public static void main (String args[]){
  
  //Membuat objek mobil
  Mobil mobil = new Mobil();
  
  //Objek mobil menggunakan method bergerak()
  mobil.bergerak();
 }
}

Seperti yang anda lihat, kedua class tersebut memiliki method void bergerak(). Class Mobil memberikan implementasinya sendiri pada method bergerak() tersebut. Dengan kata lain meng-override method bergerak() dari super class.
Sampai di sini tujuan overriding ini menjadi jelas, yaitu sub class ingin mengimplementasikan atau menerapkannya sendiri. Oleh karena itu ketika method itu dipanggil, maka akan menampilkan "Mobil bergerak!" dan bukan menampilkan "Kendaraan bergerak!".

Keuntungan Ketika Overriding Method

Terdapat keuntungan ketika meng-override method yaitu super class selaku pemilik overriden method, kodenya tidak perlu mengalami perubahan sama sekali, sementara itu di sisi lainnya sub class dapat mengimplementasikan kode tersebut sesuai dengan kebutuhan.

Bisa dibayangkan jika suatu superclass memiliki banyak subclass. Ketika sub class - sub class tersebut perlu untuk menggunakan method dari super class, mereka dapat menggunakannya karena sub class dapat menggunakan method super class pada konsep inheritance.

Dan jika mereka perlu mengimplementasikannya dengan berbeda mereka tinggal meng-override method dari super class tanpa sama sekali menyentuh kode method dari super class.

Wow, ini cukup keren gan!.

Aturan-aturan Pada Overriding Method

Berikut ini adalah aturan-aturan pada overriding method yang perlu untuk anda ketahui.

  • List dari argumen pada overriden dan overriding method harus benar-benar sama, termasuk tipe data dan urutan pada argumen tersebut.
  • Acces modifier pada overriding method tidak bisa lebih ketat daripada access modifier di overriden method.
    Contoh:

    //class Kendaraan adalah super class
    public class Kendaraan {
     
     //overriden method
     void bergerak(){
      System.out.println("Kendaraan bergerak!");
     }
    
    }
    

    //class Mobil sebagai sub class
    public class Mobil extends Kendaraan {
     
     //overriding method access modifiernya lebih ketat 
     private void bergerak(){
      System.out.println("Mobil bergerak");
     }
     
     public static void main (String args[]){
      
      //Membuat objek mobil
      Mobil mobil = new Mobil();
      
      //Objek mobil menggunakan method bergerak()
      mobil.bergerak();
     }
    }
    
    Akan muncul error seperti:
    Exception in thread "main" java.lang.Error: Unresolved compilation problem: Cannot reduce the visibility of the inherited method from Kendaraan

    Untuk lebih jelasnya:

    • Jika overridden method adalah default maka overriding harus default, protected atau public.
    • Jika overridden method adalah protected maka overriding harus protected atau public.
    • Jika overridden method adalah public, maka overriding harus public.

  • Jika suatu class inherit dari class abstract atau mengimplementasikan interface, maka class tersebut harus meng-override semua method abstract kecuali class itu sendiri adalah class abstract.

  • Method static, private dan final tidak bisa di-override. Namun method static bisa dideklarasikan ulang pada subclass.

  • Overriding method harus memiliki tipe return (sub type) yang sama

  • Jika method tidak bisa diwariskan, maka tidak bisa di-override

  • Sub class yang berada pada package yang berbeda hanya dapat meng-override method non-final yang dideklarasikan sebagai public atau protected

  • Suatu constructor tidak bisa di-override

  • Overriding method tidak boleh melontarkan checked exception yang baru atau yang lebih luas.

  • Untuk memanggil overriden method melalui sub class dapat menggunakan keyword super.
Mungkin anda juga tertarik dengan:

Share on Facebook
Share on Twitter
Share on Google+

Tempat berbagi pengetahuan untuk bahasa pemrograman Java

Related : Memahami Method Overriding Dan Aturannya Pada Java