Uma interface pode estender múltiplas interfaces, mas não pode implementar nenhuma. Uma classe abstrata, por outro lado, só pode extender uma outra classe abstrata e implementar múltiplas interfaces. Embora uma classe abstrata possa ser declarada como implementando uma interface, ela não precisa necessariamente implementar os métodos dessa interface. Contudo, a primeira classe não-abstrata que herdar essa classe terá de fazê-lo.
Por exemplo:
public interface XXX extends Runnable,Comparable {}public abstract class YYY extends XXX implements Comparator{}public class ZZZ extends YYY{
Aqui os métodos de Runnable, Comparable, Comparator e quaisquer outros métodos abstratos declarados em YYY terão de ser implementados
}