Sobes.tech
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 { }