CSC/ECE 517 Fall 2007/wiki2 8 c9
Topic 8 : Overloading Vs Overriding
Overloading vs. overriding. Skrien delineates the difference between overloading and overriding in Section 2.8. He does this in the context of Java. How do other languages make this distinction, especially those like CLOS that define multi-methods?
Polymorphism
Polymorphism is usually expressed by the phrase “One interface, multiple methods”. This allows a super class to specify methods that will be common to all of its subclasses, while allowing the subclasses to define their own specific methods.
It means design a generic interface and use it for group of related activities. This helps reduce complexity by allowing the same interface to be used to specify a general class of action. It is the compiler’s job to select the specific action (that is, method ) as it applies to each situation. Overloading
In Java it is possible to define 2 or more methods within the same class that share the same name, as long as their parameter declarations are different. The methods are said to be overloaded. This process is referred as method overloading. It is one of the way by which java implements polymorphism.Java uses the type and /or number of arguments to determine which of the overloaded methods to be overloaded. The overloaded methods may differ in return type or the number of parameters in the method call.
Example
class Overload{ void show() { System.out.println(“ There are no parameters in this method”); } void show(int a) { System.out.println(“this has one parameter : a” +a); } Void show(int a,int b){ System.out.println(“this has 2 parameters a”+a+ “b:”+b); } Double show(double a){ System.out.println(“this has a double parameter a”+a); Return a*a } } Class overloadtest { Public static void main(String args[]){ Overload obj=new Overload(); Double result; Obj.show(); Obj.show(10); Obj.show(10,20); Result=obj.show(100.5); System.out.println(“result of obj.show(100.5) is” + result); } }
Output
There are no parameters in this method
this has one parameter : a 10 this has 2 parameters a 10 b 20 this has a double parameter a 100.5 the result of obj.show(100.5) is 10100.25