Method Overriding di Java

Method overriding adalah kemampuan untuk mendeklarasikan ulang method di class child. Saat kita melakukan method overriding tersebut, saat membuat objek di class child secara otomatis Method yang ada ada di class parent tidak dapat diakses lagi. Ingat method overriding adalah mendeklarasikan ulang method yang ada di class parentnya, pendeklarasian ulang tersebut berada di class childnya. Kita buat class bernama Manager, perhatikan sintaks berikut ini:

class Manager {

    String nama;

    void sayHello(String nama){
        System.out.println("Hi "+ nama + ", nama saya Manager "+ this.nama);
    }
}

Lalu kita buat class childnya bernama Karyawan, perhatikan sintaks berikut ini:

class Karyawan extends Manager{
    void sayHello(String nama){

        /*method overriding, krn membuat method yang sama dengan yang ada
        di class parent, tapi kita tandai dengan mengganti kata manager (di class parent)
        dengan karyawan (di class child)
         */
        System.out.println("Hi "+ nama + ", nama saya karyawan "+ this.nama);
    }
}

Terakhir kita buat class bernama ManagerApp, tujuannya untuk membuat objek dan menerapkan field dan method di objek tersebut:

public class ManagerApp {
    public static void main(String[] args) {

        var manager = new Manager(); //membuat objek bernama manager
        manager.nama = "Pauzan"; //memanggil field nama, diterapkan ke objek manager
        manager.sayHello("Aufa"); //memanggil method sayHello, ditujukan ke Aufa

        //membuat objek dari class child Karyawan
        var karyawan = new Karyawan();
        karyawan.nama= "Adi"; //menggunakan field yang ada di parent class

        //method overriding
        karyawan.sayHello("Budi"); //menggunakan method yang ada di class child
    }
}

Ingat, saat kita melakukan method overriding type data, nama method dan parameternya harus sama, yang boleh berbeda adalah isi/blok yang ada di dalam method tersebut.

 

PREVIOUS: Inheritance
NEXT: Super keyword

KE DAFTAR ISI

Leave a Reply

Your email address will not be published. Required fields are marked *