Интерфейс Java: Если мы реализуем встроенный интерфейс в Java, как мы можем получить результаты методов из этого интерфейса?

Я хотел бы знать, как методы интерфейса, которые являются абстрактными методами (для версий меньше, чем Java 8), могут возвращать результат при реализации интерфейса?

Например:

Если класс или один из его суперклассов реализует интерфейс Cloneable, вы можете использовать метод clone() для создания копии из существующего объекта. Чтобы создать клон, вы пишете:

aCloneableObject.clone();

В приведенном выше примере, как метод clone() может вернуть что-либо, если метод имел только свою сигнатуру в клонируемом интерфейсе?

Пример 2:

public class C implements Cloneable {

    public static void main(String[] args) throws CloneNotSupportedException{
        C c = new C();
        c.clone();
    }

}

В приведенном выше примере почему интерфейс Cloneable не генерирует ошибку времени компиляции, даже если его методы не переопределяются?

1 ответ

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

Неправильно

Interface myOBject = new Interface()

Правильно

Interface myOBject = new ClassThatImplementsTheInterface()

ClassThatImplementsTheInterface - это класс, который реализует интерфейс и реализует все его методы.

Другие вопросы по тегам