Junior
open жана public ортосундагы айырма эмне?
sobes.tech AI
AIден жооп
open бардык модулда мүчөлөрдү мурас алуу жана кайра жазууга мүмкүндүк берет, ал эми public мүчөлөрдү бардык модулдарда колдонууга уруксат берет, бирок мурас алуу жана кайра жазуу ошол эле модулда гана уруксат берилет, анда мүчө жарыяланган.
| Өзгөчөлүк | open |
public |
|---|---|---|
| Кирүү | Ар бир модул | Ар бир модул |
| Мурас алуу | Ар бир модул | Өзүнүн модулунда гана |
| Кайра жазуу | Ар бир модул | Өзүнүн модулунда гана |
Мисал:
// Модул A
open class OpenClass {
open func openMethod() { }
public func publicMethod() { }
}
public class PublicClass {
public func publicMethod() { }
}
// Модул B
import ModuleA
class SubclassOfOpen: OpenClass {
override func openMethod() {
// Мүмкүн Модул B
}
// Катуу: publicMethod колдонууга уруксат берилген, бирок Модул Aдан тышкары кайра жазууга болбойт
// override func publicMethod() { }
}
// Катуу: PublicClass мурас алуу мүмкүн эмес Модул Aдан тышкары
// class SubclassOfPublic: PublicClass { }