У меня все еще есть путаница в этом. То, что я нашел до сих пор,
(Подобные вопросы уже заданы здесь, но у меня были другие моменты.)
Интерфейс - это коллекция ТОЛЬКО абстрактных методов и конечных полей.
В Java нет множественного наследования.
Интерфейсы могут использоваться для достижения множественного наследования в Java.
Одна сильная сторона наследования заключается в том, что мы можем использовать код базового класса в производном классе, не записывая его снова. Возможно, это самая важная вещь для наследования.
Теперь..
Q1. Поскольку интерфейсы имеют только абстрактные методы (без кода), так как мы можем сказать, что если мы реализуем какой-либо интерфейс, то это наследование? Мы не используем его код.
Q2. Если реализация интерфейса не является наследованием, то как интерфейсы используются для достижения множественного наследования?
Q3. Во всяком случае, в чем преимущество использования интерфейсов? У них нет никакого кода. Нам нужно писать код снова и снова во всех классах, которые мы реализуем.
Тогда зачем создавать интерфейсы?
ПРИМЕЧАНИЕ. Я нашел один случай, в котором интерфейсы полезны. Один из примеров этого - как в интерфейсе Runnable, у нас есть открытый метод void run(), в котором мы определяем функциональность потока, и есть встроенная кодировка, что этот метод будет выполняться как отдельный поток. Поэтому нам просто нужно закодировать, что делать в потоке, Rest предварительно задан. Но эта вещь также может быть достигнута с использованием абстрактных классов и всего.
Тогда каковы преимущества использования интерфейсов? Это действительно многократное наследование, которое мы достигаем с помощью интерфейсов?