Junior
open və public arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
open hər hansı bir modulda üzvləri irsən almağa və yenidən yaza bilməyə imkan verir, public isə üzvlərdən hər hansı bir modulda istifadə etməyə imkan verir, lakin irsən alma və yenidən yazma yalnız üzv elan olunduğu modul daxilində icazə verilir.
| Xüsusiyyət | open |
public |
|---|---|---|
| Giriş | Hər hansı modul | Hər hansı modul |
| İrsən alma | Hər hansı modul | Yalnız öz modulunda |
| Yenidən yaza bilmə | Hər hansı modul | Yalnız öz modulunda |
Nümunə:
// 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-də
}
// Xəta: publicMethod istifadə üçün icazə verilir, lakin Modul A xaricində yenidən yaza bilməz
// override func publicMethod() { }
}
// Xəta: PublicClass xaricində irsən almağa icazə verilmir
// class SubclassOfPublic: PublicClass { }