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 yaitu sub class.
Jadi, dikala super class ini mempunyai method dan kemudian method ini dideklarasikan di sub class maka di sebut dengan method overriding.
Dengan demikian, subclass tersebut akan menunjukkan implementasi tersendiri pada method yang sudah disediakan oleh super class tersebut.
Dalam Java :
Seperti yang anda lihat, kedua class tersebut mempunyai method void bergerak(). Class Mobil menunjukkan 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 alasannya yaitu itu dikala method itu dipanggil, maka akan menampilkan "Mobil bergerak!" dan bukan menampilkan "Kendaraan bergerak!".
Bisa dibayangkan kalau suatu superclass mempunyai banyak subclass. Ketika sub class - sub class tersebut perlu untuk memakai method dari super class, mereka sanggup menggunakannya alasannya yaitu sub class sanggup memakai method super class pada konsep inheritance.
Dan kalau mereka perlu mengimplementasikannya dengan berbeda mereka tinggal meng-override method dari super class tanpa sama sekali menyentuh instruksi method dari super class.
Wow, ini cukup keren gan!.
Jadi, dikala super class ini mempunyai method dan kemudian method ini dideklarasikan di sub class maka di sebut dengan method overriding.
Dengan demikian, subclass tersebut akan menunjukkan implementasi tersendiri pada method yang sudah disediakan oleh super class tersebut.
Dalam Java :
- Overriden yaitu method yang terdapat di super class
- Overriding yaitu method yang terdapat di sub class
Contoh Simpel Method Overriding
Misalkan terdapat 2 class, yang terdiri dari superclass dan subclass menyerupai di bawah ini.//class Kendaraan yaitu 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 kendaraan beroda empat Mobil kendaraan beroda empat = new Mobil(); //Objek kendaraan beroda empat memakai method bergerak() mobil.bergerak(); } }
Seperti yang anda lihat, kedua class tersebut mempunyai method void bergerak(). Class Mobil menunjukkan 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 alasannya yaitu itu dikala method itu dipanggil, maka akan menampilkan "Mobil bergerak!" dan bukan menampilkan "Kendaraan bergerak!".
Keuntungan Ketika Overriding Method
Terdapat laba dikala meng-override method yaitu super class selaku pemilik overriden method, kodenya tidak perlu mengalami perubahan sama sekali, sementara itu di sisi lainnya sub class sanggup mengimplementasikan instruksi tersebut sesuai dengan kebutuhan.Bisa dibayangkan kalau suatu superclass mempunyai banyak subclass. Ketika sub class - sub class tersebut perlu untuk memakai method dari super class, mereka sanggup menggunakannya alasannya yaitu sub class sanggup memakai method super class pada konsep inheritance.
Dan kalau mereka perlu mengimplementasikannya dengan berbeda mereka tinggal meng-override method dari super class tanpa sama sekali menyentuh instruksi method dari super class.
Wow, ini cukup keren gan!.
Aturan-aturan Pada Overriding Method
Berikut ini yaitu 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 sanggup lebih ketat daripada access modifier di overriden method.
Contoh:
//class Kendaraan yaitu 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 kendaraan beroda empat Mobil kendaraan beroda empat = new Mobil(); //Objek kendaraan beroda empat memakai 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 yaitu default maka overriding harus default, protected atau public.
- Jika overridden method yaitu protected maka overriding harus protected atau public.
- Jika overridden method yaitu 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 yaitu class abstract.
- Method static, private dan selesai tidak sanggup di-override. Namun method static sanggup dideklarasikan ulang pada subclass.
- Overriding method harus mempunyai tipe return (sub type) yang sama
- Jika method tidak sanggup diwariskan, maka tidak sanggup di-override
- Sub class yang berada pada package yang berbeda hanya sanggup meng-override method non-final yang dideklarasikan sebagai public atau protected
- Suatu constructor tidak sanggup di-override
- Overriding method dilarang melontarkan checked exception yang gres atau yang lebih luas.
- Untuk memanggil overriden method melalui sub class sanggup memakai keyword super.
Belum ada Komentar untuk "Memahami Method Overriding Dan Aturannya Pada Java"
Posting Komentar