В Java класс наследует ровно один класс (extends), но реализует любое число интерфейсов (implements A, B, C).
Почему так: при множественном наследовании классов возникает неоднозначность — «проблема ромба». Если два родителя содержат поле или метод с одинаковым именем, непонятно, что наследует потомок, и как инициализировать состояние двух родителей. Java избегает этого, разрешая только одного родителя-класса.
У интерфейсов нет состояния экземпляра, поэтому реализовать несколько безопасно. Интерфейс описывает роль объекта: класс может быть одновременно Comparable, Serializable и AutoCloseable.
С Java 8 у интерфейсов есть default-методы с реализацией, и конфликт снова возможен: если два интерфейса дают default-метод с одной сигнатурой, компилятор потребует переопределить его в классе и, при желании, вызвать нужный вариант через A.super.method().