Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Реализация интерфейса в производном классе

#java #интерфейс


Класс А реализует интерфейсы Serializable и Cloneable. От него наследуется класс B.

Реализует ли производный класс интерфейсы базового класса? 
    


Ответы

Ответ 1



Реализует. В этом можно убедиться на примере: public class A implements java.io.Serializable, Cloneable { } public class B extends A { } B b = new B(); System.out.println(b instanceof java.io.Serializable); System.out.println(b instanceof Cloneable); В обоих случаях будет выведено true. По поводу комментария: Если класс A будет абстрактным: public abstract class A implements java.io.Serializable, Cloneable { } то в данном конкретном случае для класса B ничего не поменяется. Однако если, например, класс A будет выглядеть так: public abstract class A implements AutoCloseable { } то в классе public class B extends A придётся реализовать метод close из интерфейса AutoCloseable, потому что иначе возникнет ошибка компиляции: java.lang.RuntimeException: Uncompilable source code - B is not abstract and does not override abstract method close() in java.lang.AutoCloseable

Комментариев нет:

Отправить комментарий