Junior
Swift-də sadə sinif və open sinif arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də, varsayılan olaraq, bütün siniflər final — miras alınmaz. Bir sinifin miras alınabilməsi üçün onu open və ya public kimi elan etmək lazımdır, amma bunlar arasında vacib fərqlər var:
open— ən açıq giriş səviyyəsidir.openilə işarələnmiş sinif miras alınabilir və onun metodları həm modul daxilində, həm də xaricində yenidən təyin oluna bilər.public— sinif modul xaricində istifadə üçün əlçatandır, amma miras alma və metodların yenidən təyin olunması yalnız eyni modul daxilində mümkündür.
Beləliklə, open sinif digər modullarda davranışın genişləndirilməsi və dəyişdirilməsinə imkan verir, sadə (məsələn, public) sinif isə — yox.
Nümunə:
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// Digər modüldə, OpenClass-dan miras alınabilir və greet() yenidən təyin oluna bilər,
// amma PublicClass-dan yox.