Sobes.tech
Back to questions
Junior — Middle
76

Следует ли предоставлять реализацию для методов интерфейса в его базовом классе?

Answer from AI

sobes.tech AI

В Android (и в Java/Kotlin в целом) интерфейс определяет только контракт — набор методов, которые должны быть реализованы классом. В классах, реализующих интерфейс, эти методы должны быть реализованы.

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

Например, в Java можно сделать так:

public interface MyInterface {
    void doSomething();
}

public abstract class BaseClass implements MyInterface {
    @Override
    public void doSomething() {
        System.out.println("Базовая реализация");
    }
}

public class ChildClass extends BaseClass {
    // Можно переопределить doSomething, а можно использовать базовую реализацию
}

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