Junior
open va public o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
open har qanday modulda a'zolarni meros olish va qayta yozishga imkon beradi, public esa a'zolarni har qanday modulda ishlatishga ruxsat beradi, lekin meros olish va qayta yozish faqat u a'zo e'lon qilingan modul doirasida ruxsat etiladi.
| Xususiyat | open |
public |
|---|---|---|
| Kirish | Har qanday modul | Har qanday modul |
| Meros olish | Har qanday modul | Faqat o'z modulida |
| Qayta yozish | Har qanday modul | Faqat o'z modulida |
Misol:
// Modul A
open class OpenClass {
open func openMethod() { }
public func publicMethod() { }
}
public class PublicClass {
public func publicMethod() { }
}
// Modul B
import ModuleA
class SubclassOfOpen: OpenClass {
override func openMethod() {
// Mümkün Modul B'de
}
// Xato: publicMethod foydalanishga ruxsat etilgan, lekin Module A tashqarisida qayta yozish mumkin emas
// override func publicMethod() { }
}
// Xato: PublicClass tashqarisida meros olish mumkin emas
// class SubclassOfPublic: PublicClass { }