Question: what exactly is the difference between an interface and abstract class?
Answer: Main difference is methods of a Java interface are implicitly abstract and cannot have implementations. A Java abstract class can have instance methods that implements a default behavior. ... An abstract class may contain non-final variables. Members of a Java interface are public by default.