Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpIfIh 71 of 147 menu
◀ ▶

Наследование интерфейсов в Java

Интерфейсы наследуют друг друга ключевым словом extends, а не implements. Дочерний контракт включает все методы и константы родителя плюс свои. Родителей у интерфейса может быть несколько - их перечисляют через запятую. Пример цепочки:

interface Figure { double area(); double perimeter(); } interface Rectangle extends Figure { double getWidth(); double getHeight(); }

Класс, реализующий Rectangle, обязан закрыть и методы Figure, и требования Rectangle. Повторно объявлять методы родительского интерфейса в дочернем не нужно - они уже входят в контракт:

class SimpleRect implements Rectangle { private final double width; private final double height; public SimpleRect(double width, double height) { this.width = width; this.height = height; } @Override public double getWidth() { return width; } @Override public double getHeight() { return height; } @Override public double area() { return width * height; } @Override public double perimeter() { return 2 * (width + height); } }

Цепочка интерфейсов помогает не дублировать одинаковые методы в разных контрактах. Общую часть выносят в базовый интерфейс, частные детали - в наследников.

Сделайте интерфейс User с методами getName, setName, getAge и setAge.

Сделайте интерфейс Employee, наследующий User и добавляющий getSalary и setSalary.

Сделайте класс OfficeEmployee, реализующий интерфейс Employee.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить