Junior
24
0
questionbank

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

Answer from sobes.tech neural network

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

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

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

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

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

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

Register or sign in to get access to full answers for all questions from the question bank.

oopclassesinheritanceaccess-modifiers