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

Класс и интерфейс вместе в Java

Класс может расширять один родительский класс и при этом реализовать один или несколько интерфейсов. Сначала пишут extends и имя класса, затем implements и список интерфейсов через запятую. Заготовка типов:

interface Programmer { java.util.List<String> getLangs(); void addLang(String lang); } class Article { private String title; private int views; public Article(String title, int views) { this.title = title; this.views = views; } public String getTitle() { return title; } public int getViews() { return views; } }

Часть методов контракта уже есть в Article. Новый класс берёт их через наследование и дописывает только то, чего не хватает для интерфейса:

class Developer extends Article implements Programmer { private final java.util.List<String> langs = new java.util.ArrayList<>(); public Developer(String title, int views) { super(title, views); } @Override public java.util.List<String> getLangs() { return langs; } @Override public void addLang(String lang) { langs.add(lang); } }

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

class Team { private final java.util.List<Programmer> members = new java.util.ArrayList<>(); public void add(Programmer member) { members.add(member); } }

Сделайте интерфейс Storable с методом save.

Сделайте класс Entity с полем title типа String.

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

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