Несколько интерфейсов в Java
Класс в Java может иметь только одного родителя-класса,
но любое количество интерфейсов. Имена перечисляют через
запятую после implements. Пример двух контрактов
у одного класса:
interface Drawable {
void draw();
}
interface Movable {
void move();
}
class Sprite implements Drawable, Movable {
@Override
public void draw() {
System.out.println("draw");
}
@Override
public void move() {
System.out.println("move");
}
}
Каждый интерфейс добавляет свой набор обязательных методов. Класс должен реализовать их все, иначе объявление останется неполным.
Если два интерфейса объявляют метод с одинаковой
сигнатурой, в классе достаточно одного @Override.
Когда оба родителя дают default-реализацию
с одним именем, нужно явно выбрать, какую вызвать,
через ИмяИнтерфейса.super:
interface A {
default void report() {
System.out.println("A");
}
}
interface B {
default void report() {
System.out.println("B");
}
}
class Both implements A, B {
@Override
public void report() {
A.super.report();
B.super.report();
}
}
Сделайте интерфейсы Readable с методом read
и Writable с методом write.
Сделайте класс Document, реализующий оба
интерфейса: Readable и Writable.