Junior — Middle
Обяснете какво означава обявяването на клас като final в Java и как се различава от обикновен клас.
sobes.tech AI
Отговор от 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 класс гарантирует, что его поведение останется неизменным через наследование.