Concrete method in abstract class

can subclasses inherit/override concrete methods from an abstract superclass

If they are not final, yes, they can be overriden.

And secondly do they have to implement concrete methods the same way they implement abstract methods?

No, they only need to implement/override the abstract ones, otherwise an abstract method wouldn't make sense.


A concrete method means, the method has complete definition but it can be overridden in the inherited class. If we make this method "final" then it can not be overriden. Declaring a method or class "final" means its implementation is complete. It is compulsory to override the abstract methods in the subclass otherwise the subclass would also be an abstract class and has to be declared abstract.