Search code examples
javamethodssubclasssuperclass

Superclasses methods for subclasses Java


Does a subclass need to rewrite each method of the superclass or it isn't mandatory to do so but the subclass can override some methodes of the superclass. I am a bit confused.


Solution

  • If a subclass wishes to introduce unique behavior for invocation of a method that it inherited, then that method must be overridden.

    The most common cases for this: toString, equals and hashCode are all eligible to be overridden for all of your custom classes, given that your custom class doesn't want to leverage Object#toString, Object#equals or Object#hashCode, which are all "unhelpful" for your custom implementations.

    If a subclass does not wish to introduce unique behavior for invocation of a method that it inherited, then this is unnecessary. You can rely on the parent class' behavior instead.

    If your parent class is abstract, then you have no choice but to implement what methods the parent class chose not to implement.

    If you're implementing an interface, the same principle as abstract classes applies - because the interface does not implement anything itself, you must implement the methods that the interface prescribes.