Sunday, July 22, 2012

OVERRIDING vs OVERLOADING

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM2c092Gvo2GoR85dC99tWPzZdoaoHg5b3szOhPxgaxYZXO-r1I6Q8AtPcQTZmkJTcWNWCLsc7s0LjKBvKLSJ_0wE5-D7xEDLt417qumzREYPJIkRkbug1JPXWxe0a1azMzDwgS8nVENs/s320/DSC_0573.JPG


OVERRIDING – when you extend a class and write a method in the derived class which is exactly similar to the one present in the base class, it is termed as overriding.
Example:
public class BaseClass{
public void methodToOverride()
{
//Some code here
}
}
public class DerivedClass extends BaseClass{
public void methodToOverride()
{
//Some new code here
}
}

As you can see, in the class DerivedClass, we have overridden the method present in the BaseClass with a completely new piece of code in the DerivedClass.
What that effectively means is that if you create an object of DerivedClass and call the methodToOverride() method, the code in the derivedClass will be executed. If you hadn’t overridden the method in the DerivedClass then the method in the BaseClass would have been called.

The access specifier for an overriding method can allow more, but not less, access than the overridden method.
For example, a protected instance method in the superclass can be made public, but not private, in the subclass.

OVERLOADING -  when you have more than one method with the same name but different arguments, the methods are said to be overloaded.
Example:
public class OverLoadingExample{
public void add(int i, int j)
{
int k = i + j;
}
public void add(String s, String t)
{
int k = Integer.parseInt(s) + Integer.parseInt(t);
}
}
As you can see in the example above, we have the same method add() taking two parameters but with different data types. Due to overloading we can now call the add method by either passing it a String or int 

No comments:

Post a Comment