Интерфейс 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 - это класс, который реализует интерфейс и реализует все его методы.