Junior
73
questionbank

Является ли класс open финальным или нефинальным?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Класс, помеченный как open, является нефинальным. Ключевое слово open в Swift позволяет другим модулям (а не только внутри того же модуля, что и public) наследовать от этого класса и переопределять его методы и свойства. Класс без open или final по умолчанию является internal и может быть унаследован только внутри того же модуля. Класс, помеченный как final, не может быть унаследован вообще.

Сравнительная таблица:

Ключевое словоНаследование (в том же модуле)Наследование (в других модулях)Переопределение (в том же модуле)Переопределение (в других модулях)По умолчанию (без open/public/internal/fileprivate/private и final)
openДаДаДаДаНет (по умолчанию internal)
publicДаНетДаНетНет (по умолчанию internal)
internalДаНетДаНетДа
fileprivateНетНетДаНетНет (по умолчанию internal)
privateНетНетДаНетНет (по умолчанию internal)
finalНетНетНетНетНет (может быть вместе с open - что нелогично, или с другими уровнями доступа)

Пример:

swift