Method Overloading and Overriding
1. What is the another name of Method Overloading?
Method Overloading is also known as
Static Polymorphism.
2.In java, How will we implement method overloading?
We known, a class can have multiple
method with same name but different arguments. It is called Method Overloading.
To implement method overloading we have to create two methods with same name in
a class and do one/more of the following:
1.
Different number
of parameters
2.
Different data
type of parameters
3.
Different
sequence of data type of parameters
3. What kinds of argument variation are allowed in Method Overloading?
Method Overloading only allows two
methods with same name to differ in:
1.
Number of
parameters
2.
Data type of
parameters
3.
Sequence of data
type of parameters
4. It is not possible to do method overloading by changing return type of the method in java. Why ?
If we change the return type of
overloaded method then it will lead to ambiguous behavior. How will clients
know which method will return what type. Due to this different return type not
allowed in overloaded methods.
5. Is it possible to overload main() method in Java?
Yes, Java allows users to create many
methods with same name ‘main’. But java only use public static void
main(String[] args) method for execution code.
6. How do we implement method overriding in Java?
To override a method, we just provide a
new implementation of a method with same name method in subclass. So there will
be at least two implementations of the method with same name. One
implementation is in parent class. And another implementation is in child
class.
7. Is it possible to override a static method in Java?
No. Java does not allow to overriding a
static method. If you create a static method with same name in subclass, then
it is a new method, not an overridden method.
8. Why does not allow overriding a static method in java?
To override a method, we need an
instance of a class. Static method is not associate with any instance of the
class. So the concept of overriding does not apply on static methods. So, Java
does not allow overriding a static method.
9. Is it allowed to override an overloaded method in java?
Yes. we can override an overloaded
method in Java.
10. What is the difference between overriding and overloading methods in Java?
Differences between method overriding
and overloading are:
1.
Method
overloading is static polymorphism. Method overriding is run-time polymorphism.
2.
Method
overloading occurs within the same class. Method overriding happens in two
classes with hierarchy relationship.
3.
Parameters must
be different in method overloading. Parameters must be same in method
overriding.
4.
Method
overloading is a compile time concept. Method overriding is a run-time concept.
11. Does Java allow virtual functions?
Yes. All instance methods in Java are
virtual function by default. Only class methods and private instance methods
are not virtual method in Java.
12.What is meant by co-variant return type in Java?
A co-variant return type of a method is
one that can be replaced by a "narrower" type when the method is
overridden in a subclass.
Let say class X is child of class Z.
There is a get() non-static method in class Z as well as class X. get() method
of class Z can return an instance of Z, and get() method of class X return an
instance of X. Here class X overrides get() method, but the return type is
different. Before Java 5, any method that overrides the method of parent class
would have same return type. From Java 5 onwards, a child class can override a
method of parent class and the child class method can return an object that is
child of object return by parent class method.
Comments