[Feature] Default implementation [Interface] An interface cannot provide any code, just the signature. [Abstract class] 
An abstract class can provide complete, default code and/or just the details that have to be overridden.