Sobes.tech
Junior

Wat is het verschil tussen een eenvoudige klasse en een open klasse in Swift?

sobes.tech AI

Antwoord van AI

In Swift zijn standaard alle klassen final — ze kunnen niet worden geërfd. Om een klasse erfbaar te maken, moet deze worden gedeclareerd als open of public, maar er zijn belangrijke verschillen:

  • open — het meest open toegangsniveau. Een klasse met de modifier open kan worden geërfd en haar methoden kunnen worden overschreven zowel binnen als buiten de module.
  • public — de klasse is toegankelijk buiten de module, maar erfelijkheid en overschrijven van methoden is alleen mogelijk binnen dezelfde module.

Dus, een open klasse maakt uitbreiding en wijziging van gedrag in andere modules mogelijk, terwijl een eenvoudige (bijvoorbeeld public) klasse dat niet doet.

Voorbeeld:

open class OpenClass {
    open func greet() {
        print("Hello from OpenClass")
    }
}

public class PublicClass {
    public func greet() {
        print("Hello from PublicClass")
    }
}

// In een andere module kan je van OpenClass erven en greet() overschrijven,
// maar niet van PublicClass.