Junior
Kāda ir atšķirība starp open un public?
sobes.tech AI
Atbilde no AI
open ļauj manto un pārrakstīt locekļus jebkurā modulī, kamēr public ļauj izmantot locekļus jebkurā modulī, bet mantošana un pārrakstīšana ir atļauta tikai tajā pašā modulī, kurā ir deklarēts loceklis.
| Īpašība | open |
public |
|---|---|---|
| Piekļuve | Jebkurš modulis | Jebkurš modulis |
| Mantošana | Jebkurš modulis | Tikai savā modulī |
| Pārrakstīšana | Jebkurš modulis | Tikai savā modulī |
Piemērs:
// Modulis A
open class OpenClass {
open func openMethod() { }
public func publicMethod() { }
}
public class PublicClass {
public func publicMethod() { }
}
// Modulis B
import ModuleA
class SubclassOfOpen: OpenClass {
override func openMethod() {
// Iespējams modulī B
}
// Kļūda: publicMethod ir atļauts lietot, bet ne pārrakstīt ārpus Modula A
// override func publicMethod() { }
}
// Kļūda: PublicClass neļauj mantošanu ārpus Modula A
// class SubclassOfPublic: PublicClass { }