Почему Optional <T> объявлен как финальный класс?

Я играл со следующим вопросом:Использование Java 8 необязательно с Stream :: flatMap&nbsp;и хотел добавить метод в кастомOptional<T>&nbsp;и затем проверьте, сработало ли это.
Точнее, я хотел добавитьstream()&nbsp;к моемуCustomOptional<T>&nbsp;который возвращает пустой поток, если значение отсутствует, или поток с одним элементом, если он присутствует.

Тем не менее, я пришел к выводу, чтоOptional<T>&nbsp;объявлен как окончательный.

Почему это так? Есть множество классов, которые не объявлены как окончательные, и я лично не вижу причины здесьOptional<T>&nbsp;окончательный.

В качестве второго вопроса, почему не все методы могут быть финальными, если есть опасение, что они будут переопределены и оставят класс не финальным?