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, а можно использовать базовую реализацию
}
Таким образом, предоставлять реализацию методов интерфейса в базовом классе можно и часто полезно, если это логично с точки зрения архитектуры и повторного использования кода.