Swift में `open` कीवर्ड का क्या अर्थ है और यह `public` से कैसे अलग है?
सभी को नमस्कार! मैंने हाल ही में Swift सीखना शुरू किया है और एक्सेस मॉडिफायर के साथ काम करते समय भ्रम का सामना करना पड़ा। Apple के दस्तावेज़ में लिखा है कि `open` सबसे उच्च स्तर का एक्सेस है, लेकिन मैं पूरी तरह से नहीं समझ पाया कि इसका `public` से क्या अंतर है।
मैं नेटवर्किंग के लिए एक छोटी लाइब्रेरी लिख रहा हूँ। यहाँ मेरे class का उदाहरण है:
```swift
public class NetworkManager {
public func fetchData() {
print("Fetching data...")
}
}
```
सब कुछ काम करता है, लेकिन मैंने पढ़ा कि उन classes के लिए जो दूसरे module से inherit की जा सकती हैं, `open` का उपयोग करना चाहिए। मैंने `public` को `open` से बदलने की कोशिश की:
```swift
open class NetworkManager {
open func fetchData() {
print("Fetching data...")
}
}
```
व्यवहार में कोई अंतर नहीं देखा। कृपया बताएं:
1. `open` और `public` में वास्तविक अंतर क्या है?
2. कब `open` का उपयोग करना चाहिए और कब `public` पर्याप्त है?
3. Apple ने `public` होने के बावजूद `open` कीवर्ड क्यों पेश किया?
उदाहरणों के साथ स्पष्टीकरण के लिए आभारी रहूंगा।