Скажем, у нас есть два класса: Tiger
и Aeroplane
.
Одна вещь, общая для этих двух типов - скорость. Я знаю, что было бы нелогично создавать суперкласс ClassWithSpeed
, а затем выводить из него подклассы Aeroplane
и Tiger
.
Вместо этого лучше создать интерфейс, содержащий метод speed()
, а затем реализовать его в Aeroplane
и Tiger
. Я понимаю. Но мы можем сделать то же самое без интерфейсов. Мы могли бы определить метод speed()
в Aeroplane
и метод speed()
в Tiger
.
Единственным (возможно, очень большим) недостатком было бы то, что мы не смогли бы "достичь" объектов Tiger
и Aeroplane
через ссылку на интерфейс.
Я новичок в Java и OOP, и я был бы очень благодарен, если бы кто-то объяснил мне роль интерфейсов. Ура!