Sobes.tech
Junior — Middle

Quale regola determina la disponibilità di Open Class, se è pubblico o privato?

sobes.tech AI

Risposta dell'AI

In Swift, la parola chiave open definisce il livello di accesso più alto per classi e loro membri. Una classe dichiarata come open è accessibile per l'uso e l'ereditarietà non solo all'interno del modulo in cui è dichiarata, ma anche da altri moduli. Ciò significa che una classe open è pubblica e può essere estesa e sovrascritta al di fuori del modulo.

Regole di accesso per una classe open:

  • Disponibile da qualsiasi modulo (pubblico).
  • Può essere ereditata e sovrascritta fuori dal modulo.

A differenza di public, che permette di usare la classe fuori dal modulo ma non consente ereditarietà o sovrascrittura fuori dal modulo, open offre la massima flessibilità per l'estensione.

Esempio:

open class Vehicle {
    open func start() {
        print("Vehicle started")
    }
}

// In un altro modulo, si può ereditare e sovrascrivere
class Car: Vehicle {
    override func start() {
        print("Car started")
    }
}