Sobes.tech
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.