Junior — Middle
Selgitage erinevust meetodi, mis on rakendatud samal nimel ja signatuuriga klassis ning selle ülekoormamise ning meetodi ülekirjutamise vahel pärilikes klassides.
sobes.tech AI
Vastus AI-lt
Meetodite ülekoormamine (overloading) toimub, kui ühes klassis luuakse mitu meetodit sama nimega, kuid erinevate signatuuridega (erinevad parameetrite kogumid). See võimaldab kutsuda meetodit erinevate argumentidega, ning kompilaator valib sobiva variandi.
Meetodi ülekirjutamine (overriding) toimub pärilikus klassis, kui sama signatuuriga meetod, nagu baasklassis, implementeeritakse uuesti, et muuta või laiendada baasmeetodi käitumist.
Näide Swiftis:
class Animal {
func sound() {
print("Mingi hääl")
}
}
class Dog: Animal {
override func sound() { // ülekirjutamine
print("Haugumine")
}
func sound(volume: Int) { // ülekoormus
print("Haugumine helitugevusega \(volume)")
}
}
Siin, sound() Dog klassis ülekirjutab baasklassist Animal meetodi, ning sound(volume:) on meetodi ülekoormus teise parameetrite kogumiga.