Sobes.tech
Back to questions
Junior — Middle
93

Объясните, что означает объявление класса как final в языке Java и чем оно отличается от обычного класса.

Answer from AI

sobes.tech AI

Объявление класса как final в Java означает, что этот класс нельзя наследовать — то есть нельзя создать подкласс от этого класса. Это отличается от обычного класса, который можно расширять и создавать на его основе новые классы.

Основные особенности final класса:

  • Запрещает наследование, что помогает защитить реализацию от изменений.
  • Может использоваться для повышения безопасности и производительности (компилятор может оптимизировать вызовы методов).
  • Часто применяется для классов, которые не предполагается расширять, например, String.

Пример:

public final class ImmutableClass {
    private final int value;

    public ImmutableClass(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

// Попытка наследования вызовет ошибку компиляции:
// public class SubClass extends ImmutableClass {} // Ошибка

Таким образом, final класс гарантирует, что его поведение останется неизменным через наследование.