Чи успадковуються інтерфейси від Object
класу на Java?
Ні, вони ні. І немає спільного «кореневого» інтерфейсу, який явно успадковується всіма інтерфейсами (як у випадку з класами) для цього питання. (*)
Якщо ні, то як ми можемо викликати метод класу об'єктів в екземплярі інтерфейсу
Інтерфейс неявно оголосив один метод для кожного публічного методу в Object
. Таким чином, equals
метод неявно оголошується як член в інтерфейсі (якщо тільки він вже не успадковує його від надінтерфейсу).
Це детально пояснено в специфікації мови Java, § 9.2 Члени інтерфейсу .
9.2 Члени інтерфейсу
[...]
- Якщо інтерфейс не має прямих суперінтерфейсів, тоді інтерфейс неявно оголошує публічний абстрактний метод m з підписом s , тип повернення r та викидає пункт t, відповідний кожному методу публічного екземпляра m з підписом s , типу return r та кидає пункт t оголошено в
Object
, якщо інтерфейс явно не оголосив метод з тим же підписом, тим самим типом повернення та сумісним застереженням кидків.
[...]
Ця публікація була переписана як стаття тут .
(*) Зауважимо, що поняття бути підтипом не є еквівалентним спадщинам від : Інтерфейси, які не мають супер-інтерфейсу, дійсно є підтипами Object
( § 4.10.2. Підтипи між класами та типами інтерфейсів ), хоча вони не успадковують Object
.