Junior — Middle
Izskaidrojiet atšķirību starp metodi, kas tiek īstenots ar to pašu nosaukumu un parakstu klasē, un tā pārslodzi, un metodes pārrakstīšanu mantojošajās klasēs.
sobes.tech AI
Atbilde no AI
Metodes pārlādēšana (overloading) notiek, kad vienā klasē tiek izveidotas vairāki metodes ar vienu un to pašu nosaukumu, bet ar dažādām parakstiem (atšķirīgiem parametru kopumiem). Tas ļauj izsaukt metodi ar dažādiem argumentiem, un kompilators izvēlas piemēroto versiju.
Metodes pārrakstīšana (overriding) notiek mantojošajā klasē, kad metode ar tādu pašu parakstu kā bāzes klasē tiek īstenota vēlreiz, lai mainītu vai paplašinātu bāzes metodes uzvedību.
Piemērs Swift valodā:
class Animal {
func sound() {
print("Kāds skaņa")
}
}
class Dog: Animal {
override func sound() { // pārrakstīšana
print("Rej")
}
func sound(volume: Int) { // pārlādēšana
print("Rej ar skaļumu \(volume)")
}
}
Šeit, sound() Dog klasē pārraksta bāzes klases Animal metodi, bet sound(volume:) ir metodes pārlādēšana ar citu parametru kopumu.