Junior
Класът open е финален или не?
sobes.tech AI
Отговор от AI
Не финално. Ключовата дума open ясно показва, че можете да наследите този клас и да препишете неговите членове.
open class BaseClass {
open func someMethod() {
// Стандартна реализация
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Преодоляна реализация
}
}
Сравнение с други модификатори за достъп:
| Модификатор | Наследяване | Преписване на членове |
|---|---|---|
private |
Не (в рамките на файла/обхвата) | Не |
fileprivate |
Не (в рамките на файла) | Не |
internal |
Да (в рамките на модула) | Да (в рамките на модула) |
public |
Да (в рамките на модула) | Да (в рамките на модула) |
open |
Да (във всеки модул) | Да (във всеки модул) |
final |
Не | Не |
Клас или член, маркиран като final, не може да бъде преписан или наследен, което го прави финален. open прави обратното.