In Java, an interface is a special type of class which contains only abstract methods. A class may only inherit from one parent, but it may "implement" an unlimited number of interfaces. This avoids certain problems (particularly conflicting implementations) that can arise in languages which allow multiple inheritance.