Sobes.tech
Junior

Vai klase open ir galīga vai nē?

sobes.tech AI

Atbilde no AI

Nav galīgs. Atslēgvārds open skaidri norāda, ka jūs varat manto šo klasi un pārrakstīt tās locekļus.

open class BaseClass {
    open func someMethod() {
        // Noklusējuma īstenojums
    }
}

class DerivedClass: BaseClass {
    override open func someMethod() {
        // Pārrakstīts īstenojums
    }
}

Salīdzināsim ar citiem piekļuves modifikatoriem:

Modifikators Mantošana Locekļu pārrakstīšana
private Nē (faila/platības ietvaros)
fileprivate Nē (faila ietvaros)
internal Jā (modulī) Jā (modulī)
public Jā (modulī) Jā (modulī)
open Jā (jebkurā modulī) Jā (jebkurā modulī)
final

Klase vai loceklis, kas marķēts kā final, nevar tikt pārrakstīts vai mantojams, padarot to par galīgo. open dara pretējo.