Difference between Abstract Class and Interface

Abstract Classes Interfaces Can have concrete methods Can have only abstract methods Can have variables Can have only static final (constant) data members Can have private and protected members All  members are public by default Can be extended from one class Can be extended from any number of interfaces A class can extend only one abstract class A class can implement any number of interfaces