Класс
наследуется, интерфейс
реализуется.
interface I {}
class A {}
class B extends A implements I {}
Класс обычно называют чертежом объекта. А интерфейс - это контракт, который объект обязан выполнить.
Возьмем, например,
Велосипед,
Грузовик и
Мотоцикл.
Мотоцикл - это почти
Велосипед, он делается по тому же чертежу с небольшими дополнениями. Это наследование.
Грузовик при этом ни от
Велосипеда, ни от
Мотоцикла не наследуется, у него совсем другой чертёж.
Но каждый из этих объектов реализует контракт
ТранспортноеСредство. Если у вас есть объект, являющийся
ТранспортнымСредством, вы всегда уверены, что доедете из пункта А в пункт Б и при этом вам совершенно неважно сколько у этого объекта колёс.
А вот если у вас есть контракт
Автомобиль, то вы знаете, что можете выполнить такие действия как
ОткрытьКапот,
ВключитьСтеклоочистители.
Велосипед при этом не сможет реализовать такой интерфейс. А
Грузовик будет реализовывать оба контракта: хотите - передвигайтесь, хотите - открывайте капот.