Sobes.tech
Junior — Middle

Mi a különbség a public és open hozzáférés módosítók között a Swift programozási nyelvben?

sobes.tech MI

Válasz az MI-től

Swift-ben a hozzáférés módosítói, a public és az open mindkettő lehetővé teszi egy osztály vagy metódus használatát a modulon kívül, de van közöttük egy fontos különbség:

  • A public lehetővé teszi az osztály vagy metódus használatát a modulon kívül, de nem engedélyezi az öröklődést vagy felülírást azon kívül.
  • Az open nemcsak a használatot, hanem az osztályok öröklését és a metódusok felülírását is lehetővé teszi a modulon kívül.

Más szóval, ha azt szeretnéd, hogy az osztályod más modulokban bővíthető és felülírható legyen, használd az open-t. Ha csak hozzáférést szeretnél biztosítani az osztályhoz vagy metódushoz anélkül, hogy öröklődést engedélyeznél, használd a public-at.

Példa:

public class PublicClass {
    public func method() {}
}

open class OpenClass {
    open func method() {}
}

// Egy másik modulban:
// class SubClass: PublicClass {} // Hiba: nem örökölhető
// class SubClass: OpenClass {} // Engedélyezett