Junior
Da li je klasa open finalna ili ne?
sobes.tech АИ
Одговор од АИ
Nije finalno. Ključna reč open jasno ukazuje da možete naslediti ovu klasu i prepisati njene članove.
open class BaseClass {
open func someMethod() {
// Podrazumevana implementacija
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Prepisana implementacija
}
}
Uporedimo sa drugim modifikatorima pristupa:
| Modifikator | Nasleđivanje | Prepisivanje članova |
|---|---|---|
private |
Ne (u okviru fajla/obuhvata) | Ne |
fileprivate |
Ne (u okviru fajla) | Ne |
internal |
Da (u okviru modula) | Da (u okviru modula) |
public |
Da (u okviru modula) | Da (u okviru modula) |
open |
Da (u bilo kom modulu) | Da (u bilo kom modulu) |
final |
Ne | Ne |
Klasa ili član označen kao final ne može biti prepisan ili nasledđen, čineći ga finalnim. open radi suprotno.