Встречается на собеседованиях • сегодня

Останется ли класс иммутабельным после наследования от другого класса

Нет, класс перестанет быть иммутабельным после наследования, если родительский класс не является иммутабельным. Наследование может нарушить иммутабельность, так как подкласс может добавить изменяемое состояние или переопределить методы, изменяющие внутреннее состояние.

Пример:

java
public final class ImmutableParent {
    private final int value;
    
    public ImmutableParent(int value) {
        this.value = value;
    }
    
    public int getValue() {
        return value;
    }
}

// Подкласс может нарушить иммутабельность
public class MutableChild extends ImmutableParent {
private int anotherValue;

text
public MutableChild(int value) {
    super(value);
}

public void setAnotherValue(int val) {
    this.anotherValue = val;
}

}

text

Чтобы сохранить иммутабельность:
1. Делайте класс `final`
2. Или обеспечьте, чтобы все подклассы тоже были иммутабельными
3. Используйте композицию вместо наследования
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы