"Strive to be of Value, Not to be a Success"
--Albert Einstein
Method Overriding is when a subclass redefines/rewrites an inherited method. Same method name and arguments are available in parent(base) and child(sub) class, but their implementation will differ. Calling the method with a sub-class variable will execute the sub-class's method. Sample program below to demonstrate overriding.Method Overloading is when we have two or more methods in a class with same name but different arguments. In the program below I added overloaded methods in base and sub-class.
package com.examples;
import java.util.Date;
class India {
void ride() {
System.out.println("Riding in India..");
}
void load() {
System.out.println("Loading in India");
}
}
class Bangalore extends India {
@Override //Good practice
void ride() {//Overriding method
System.out.println("Riding in Bangalore...");
}
void load(Date n) { //Overloading here
System.out.println("Loading in Bangalore: " + n);
}
}
public class OverrideOverload {
public static void main(String[] args) {
// TODO Auto-generated method stub
Bangalore ob = new Bangalore();
ob.ride();
ob.load();
ob.load(new Date());
}
}
Output:
Riding in Bangalore...
Loading in India
Loading in Bangalore: Thu Feb 27 01:24:58 IST 2014
Note: Annotating an overriding method with @Override is a good practice. This properly indicates the compiler about overriding and helps detect overloading or other mistakes, for e.g. if somebody else is reviewing the code.
No comments:
Post a Comment