Back to questions
Junior
100
questionbank
Является ли класс open финальным или нефинальным?
Sobes Copilot
Get answers in real time
Answer from AI
sobes.tech AI
Нефинальным. Ключевое слово open явно указывает, что вы можете наследоваться от этого класса и переопределять его члены.
open class BaseClass {
open func someMethod() {
// Default implementation
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Overridden implementation
}
}
Сравним с другими модификаторами доступа:
| Модификатор | Наследование | Переопределение членов |
|---|---|---|
private |
Нет (в рамках файла/скоупа) | Нет |
fileprivate |
Нет (в рамках файла) | Нет |
internal |
Да (в рамках модуля) | Да (в рамках модуля) |
public |
Да (в рамках модуля) | Да (в рамках модуля) |
open |
Да (в любом модуле) | Да (в любом модуле) |
final |
Нет | Нет |
Класс или член, помеченный final b, нельзя переопределить или наследовать, делая его финальным. open делает обратное.