1, the abstract class is a class, its subclasses can no longer inherit other classes, but the implementation of one and many interfaces. An interface is not a class, and its sub-interfaces can inherit multiple interfaces.
2, abstract class can be without the method of abstract modification, and the interface can only have an abstract method, that is, the method should be modified with abstract. There is a difference between this and C #.
3. An abstract class can implement an interface, and an interface cannot inherit or implement an abstract class.
It is said that an interface is similar to an abstract class, which means that it provides methods that are only method headers, and that is the case with abstract classes.
But in fact, the difference is very large, the interface provides a kind of Java in the class can not be more inheritance caused by the inconvenience of a solution, increased flexibility. At the same time, it is more advantageous to realize the extension of program.
Abstract classes can implement interfaces, abstract classes can inherit abstract classes, interfaces can implement interfaces, interfaces can not inherit abstract classes!
Understand them, it's best to take a look at the event listener and adapter-related content in Java GUI programming for event handling
Abstract classes and Interfaces in Java