Overide adalah sebuah proses pembuatan sebuah method baru oleh sebuah subclass, yang nama & identifier-nya sama persis dengan sebuah method lain di sebuah class induk. Overiding ini memungkinkan subclass untuk melakukan perubahan pada method class induk tanpa mengubah secara fisik.
Overide dapat juga diartikan membentuk ulang sebuah method yang ada di class induk.
Contoh:
public class Mother {
public void greetMom() {
System.out.println("Hello, Mommy");
}
}
//Contoh sebelum overide
public class Children extends Mother{
public static void main(String[] args){
Children myName = new Children();
myName.greetMom();
}
}
Contoh di atas akan menghasilkan output : "Hello, Mommy"
//Contoh overide
public class Children extends Mother{
public void greetMom(){
System.out.println("Good morning Mom");
}
public static void main(String[] args){
Children myName = new Children();
myName.greetMom();
}
}
Contoh ini akan menghasilkan "Good Morning Mom", karena fungsi greetMom() di class induk (Mother) telah di-overide alias dibentuk ulang di subclass Children.
Note:
Fungsi greetMom() pada Children, memiliki nama & identifier yang sama dengan greetMom() pada Mother
Sementara itu hiding method adalah proses membuat sebuah class yang sama dengan method di superclass. Hampir mirip dengan overide, hanya saja, hide ini membentuk ulang sebuah static method. Method yang baru pun, adalah static method. Dan apabila method yang baru ini dipanggil, yang tampil tetaplah method di superclass
Contoh :
//Contoh hide
public class Mother {
public static void greetMom() {
System.out.println("Hello, Mommy");
}
}
public class Children extends Mother{
public static void greetMom(){
System.out.println("Good morning Mom");
}
public static void main(String[] args){
Children myName = new Children();
myName.greetMom();
}
}
Contoh di atas ini tidak akan menghasilkan "Good Morning, Mom" seperti overide, tapi menghasilkan "Hello Mommy" yang merupakan output dari fungsi di superclass.
Note :
untuk meng-overide/hide sebuah method di superclass, method yang baru haruslah sama dalam hal static/tidaknya, bila tidak sama, maka akan terjadi error :P