Сколько интерфейсов может наследовать класс

Ответ

В Java/Kotlin класс может реализовывать неограниченное количество интерфейсов, но наследовать только один класс (одиночное наследование).

Пример в Kotlin:

interface A
interface B
interface C

class MyClass : A, B, C { // Реализуем 3 интерфейса
    // ...
}

Ключевые моменты:

  1. Интерфейсы поддерживают множественное "наследование"
  2. Все методы интерфейсов должны быть реализованы
  3. При конфликте сигнатур методов нужно явно указать реализацию через super<Interface>.method()

Ответ 18+ 🔞

Ну слушай, тут такая история, как в том анекдоте про мужика и трёх тещ. В Java с Kotlin класс — это как тот самый мужик. Он может хренову тучу интерфейсов реализовать, хоть двадцать штук, это не проблема. Но вот родитель-класс у него может быть только один, и всё тут. Одиночное наследование, ёпта, закон такой. Как будто отец — он один, а вот дядек и крестных — хоть овердохуища.

Смотри, как это выглядит в Kotlin, чтоб совсем понятно было:

interface A // Первый дядя с советами
interface B // Второй дядя, который вечно бухтит
interface C // Третий, который просто за сигаретами зашёл

class MyClass : A, B, C { // А это наш класс-мужик, который всех их должен слушать
    // ...
}

Вот и вся магия. Но подвох, конечно, есть, куда ж без него. Главные правила, которые надо помнить, а то доверия ебать ноль ко всем этим интерфейсам:

  1. Множественное наследование — да, но только для интерфейсов. Это как взять лучшие черты от всех, но фамилию оставить одну.
  2. Все методы, которые эти интерфейсы обещают, ты обязан реализовать. Нельзя сказать "ой, простите, забыл". Иначе компилятор тебе такое впендюрит, мало не покажется.
  3. А вот если случится конфликт — например, два дяди (интерфейса) научат тебя одному и тому же, но по-разному (fun doSomething()), то тут надо голову включить. Придётся явно указать, чей именно совет ты выполняешь, через super<Interface>.method(). Иначе сам от себя охуеешь, когда программа запутается.

Короче, интерфейсы — это сила, но и ответственность. Можно собрать себя, как франкенштейна, из кусочков, но чтобы это не превратилось в пиздопроебибну, надо внимательно за всем следить.