The interface is a standard terms for the entire program system, just like each company's rules and regulations, but for the rationality of procedures, we should better follow or try to create these rules and regulations, it makes the program's ability to researcically improved . Interface - Class | | --------------- | Abstract Class implements Interface, and Absctract is based on dependencies with Class. . Eg database.class (is a Interface), databaseImpl.class (implements database.class), databaseFactory.class (returns a database instance: synchronized public static lawee.database.Database getDatabase ()) using the interface increases the internal procedures Incidentally, the security of the program is improved from another perspective.