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 թույլատրված է օգտագործել, բայց ոչ վերագրել դուրս Module A
// override func publicMethod() { }
}
// Խախտում: PublicClass չի թույլատրում ժառանգություն դուրս Module A
// class SubclassOfPublic: PublicClass { }