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

Почему нельзя наследоваться от класса String

Класс String объявлен как final в Java, что запрещает его наследование. Это сделано по нескольким причинам:

  1. Безопасность и неизменяемостьString иммутабелен, и наследование могло бы нарушить это свойство, позволив изменять состояние через подклассы.
  2. Оптимизация – JVM использует кэширование строк (пул строк), и наследование усложнило бы эту оптимизацию.
  3. Консистентность – Методы equals(), hashCode() и compareTo() зависят от неизменяемости String.

Пример попытки наследования вызовет ошибку компиляции:

java
// Ошибка: Cannot inherit from final 'java.lang.String'
class MyString extends String {} 

Альтернатива – композиция: обернуть String в свой класс.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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