Junior — Middle
105
Je možné nahradiť abstraktnú triedu bez premenných, ktorá obsahuje iba abstraktné metódy, rozhraním?
Odpoveď od AI
sobes.tech AI
Да, если абстрактный класс не содержит переменных и включает только абстрактные методы, его можно заменить на интерфейс. В Java интерфейсы предназначены для объявления методов без реализации (до Java 8), и их основная задача — определять контракт.
Преимущества замены:
- Интерфейсы поддерживают множественное наследование, что даёт большую гибкость.
- Код становится более чистым и соответствует современным практикам.
Пример:
// Абстрактный класс
public abstract class Animal {
public abstract void makeSound();
}
// Интерфейс
public interface Animal {
void makeSound();
}
Если в будущем понадобится добавить реализацию по умолчанию, в интерфейсах с Java 8 можно использовать default методы.