the basic puppose of overriding is to change the body of method
Not quite true. Interface methods are abstract, and have no body.
Some (including myself) argue that overriding concrete methods is pure evil.
In fact, some (again, including myself) take it to what is perceived by majority as an extreme (due to decades old preconceptions) and demand that inheriting from concrete implementation be totally outlawed. Of course, this implies that all classes are declared final (and therefore, not abstract) and that the only abstract methods are also virtual i.e. members of interfaces. I take it one step further (encapsulation is paramount) and demand that all constructors be declared private (constructors violate encapsulation).
Better stop ranting and go play, it's Saturday.
I got a new set of Metzeler Z6's on my bike and they need "breaking in".
Bye!!