Junior — Middle
Je možné použiť kľúčové slovo override na statické metódy v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V programovacích jazykoch ako sú Swift alebo Objective-C sa kľúčové slovo override používa na prepísanie metód inštancie v podtriedach.
Statické metódy (označené static) nepodporujú prepísanie, pretože patria samotnej triede, nie inštancii, a sú vyriešené počas kompilácie.
V Swift-e sa pre metódy, ktoré je možné prepísať na úrovni triedy, používa namiesto static kľúčové slovo class. Tieto metódy sa nazývajú "metódy triedy" a môžu byť prepísané v podtriedach pomocou override.
Príklad v Swift-e:
class Parent {
class func greet() {
print("Ahoj od rodiča")
}
static func staticGreet() {
print("Statický pozdrav od rodiča")
}
}
class Child: Parent {
override class func greet() {
print("Ahoj od dieťaťa")
}
// override static func staticGreet() { } // Chyba pri kompilácii
}
Parent.greet() // Ahoj od rodiča
Child.greet() // Ahoj od dieťaťa
Parent.staticGreet() // Statický pozdrav od rodiča
Child.staticGreet() // Statický pozdrav od rodiča
Zhrnutie: kľúčové slovo override nemôže byť aplikované na statické metódy (static), ale môže byť aplikované na metódy deklarované s class, ktoré podporujú prepísanie.