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
publiclehető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
opennemcsak 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