Tutorial OOP Java Part 8: Pengertian Method Overriding

Melanjutkan seri tutorial belajar OOP Java, kali ini kita akan bahas tentang Method Overriding yang kadang disebut juga sebagai penimpaan method.


Pengertian Method Overriding

Method overriding adalah sebuah situasi dimana method class turunan menimpa method milik parent class. Ini bisa terjadi jika terdapat nama method yang sama baik di child class dan juga parent class.

Berikut contoh situasi yang dimaksud:

class Komputer {
  String cekInfo() { 
    return "Ini berasal dari class Komputer"; 
  }
}

class Laptop extends Komputer {
  String cekInfo() { 
    return "Ini berasal dari class Laptop"; 
  }
}

class BelajarJava {
  public static void main(String args[]){
    
    Laptop laptopAndi = new Laptop();
    System.out.println(laptopAndi.cekInfo());
  
  }
}

Pada kode program ini, class Komputer diturunkan kepada class Laptop. Perhatikan bahwa di dalam kedua class terdapat method cekInfo().

Di dalam method main pada class BelajarJava, saya menginstansiasi class Laptop ke dalam variabel laptopAndi, lalu menjalankan perintah laptopAndi.cekInfo().

Pertanyaannya, method cekInfo() milik siapa yang akan dijalankan? apakah milik class Laptop, atau milik class Komputer?

Saat kode di atas dijalankan, hasilnya adalah sebagai berikut:

Ini berasal dari class Laptop

Ternyata method cekInfo() milik class Laptop-lah yang dijalankan. Dalam kasus ini sudah terjadi method overriding, dimana method cekInfo() milik class Laptop menimpa method cekInfo() milik class Komputer.


Cara Mengakses Method Overriding Dari Child Class

Jika kita tetap ingin mengakses method yang sudah ter-overridden, itu bisa dilakukan dari dalam child class dengan bantuan keyword super. Berikut contoh penggunaannya:

class Komputer {
  String cekInfo() { 
    return "Ini berasal dari class Komputer"; 
  }
}

class Laptop extends Komputer {
  
  String cekInfo() { 
    System.out.println(super.cekInfo());
    return "Ini berasal dari class Laptop"; 
  }
}

class BelajarJava {
  public static void main(String args[]){
    
    Laptop laptopAndi = new Laptop();
    System.out.println(laptopAndi.cekInfo());
  
  }
}

Hasil kode program:

Contoh Kode Program Function Overriding OOP Cpp

Di baris 10, kita bisa mengakses method cekInfo() milik class Komputer dengan perintah super.cekInfo(). Hasilnya, akan tampil teks "Ini berasal dari class Komputer" milik class Komputer.

Materi method overriding yang kita bahas kali ini merupakan salah satu kasus khusus yang bisa terjadi akibat dari pewarisan class (class inheritance).

Idealnya, tetap disarankan untuk selalu menulis nama method yang berbeda pada setiap class agar tidak terjadi penimpaan seperti ini. Namun jika itu terjadi, kita bisa mengaksesnya menggunakan keyword super.


Lanjut, pada tutorial berikutnya akan dibahas tentang materi yang sedikit mirip, yakni tentang Method Overloading.

Add Comment