Reputation: 9
What is the difference between abstract method
and method overriding
in java? Because same result can be found by using method overriding. so what is the necessity of abstract
method.
Upvotes: 0
Views: 127
Reputation: 1497
The two have different usages which can't be compared.
An Abstract Class is created only to be sub classed by some other class. The implementing class necessarily has to implement all the abstract methods declared inside it. However Method Overriding is the ability of a subclass to override a method from an inherited superclass
whose behavior is "close enough" and then to modify behavior as needed. An Abstract Method is one that is declared without an implementation and needs to be necessarily implemented in the subclass.
Upvotes: 0
Reputation: 1973
The abstract method needs to be implemented in order for the subclass to be utilized. You must also implement non-abstract methods, for instance, in the case of interface method signatures.
I think it is correct to say that you implement abstract methods in the same way that you implement method stubs of an interface. Overriding is not the same as implementing because you can override methods which are not stubs. Subclasses often override methods where the superclass is neither an interface nor an abstract class. So the term overriding has a broader meaning than implementation.
You may find this tutorial helpful as it has quite a clear definition.
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Hope that helps!
Upvotes: 1
Reputation: 6743
An abstract method forces a programmer who inherits the method to define an implementation for it, i.e. the class says "I will need an implementation of this function, which the concrete implementation of this class must provide".
This is in contrast to overriden methods, which allow (rather than require) the inheriting class to change the implementation of the method for objects of that class.
In particular, overridable methods (or "virtual" methods) have a basic implementation (which can itself be empty) that the overriding method can call.
Upvotes: 2