What is the difference between an Abstract class and Interface?
• Abstract classes may have some executable methods and methods left unimplemented. Interfaces contain no implementation code. • An class can implement any number of interfaces, but subclass at most one abstract class. • An abstract class can have nonabstract methods. All methods of an interface are abstract. • An abstract class can have instance variables. An interface cannot. • An abstract class can define constructor. An interface cannot. • An abstract class can have any visibility: public, protected, private or none (package). An interface’s visibility must be public or none (package). • An abstract class inherits from Object and includes methods such as clone() and equals().