Junior
Mida te saate rääkida pärimisest programmeerimises?
sobes.tech AI
Vastus AI-lt
Pärimine on objektorienteeritud programmeerimise mehhanism, mis võimaldab ühel klassil (päril või alamklassil) pärida teise klassi (vanema või baasklass) omadusi ja meetodeid.
Põhikonceptsioonid:
- Koodi taaskasutus: Pärimine võimaldab alamklassil kasutada juba olemasolevat vanema klassi koodi, vältides dubleerimist.
- is-a suhe: Pärimine modelleerib "on" suhet. Näiteks, "Koer on Imetaja".
- Laiendamine: Alamklass võib lisada uusi omadusi ja meetodeid või üle kirjutada (override) olemasolevaid vanema klassi meetodeid, muutes nende käitumist.
Swiftis:
- Pärimine toetatakse ainult klassidele. Struktuurid ja enumid ei toeta pärimist.
- Kasutatakse võtmesõna
class. - Päriliku klassi näidatakse pärast koolonit ja vanema klassi nime.
- Vanema klassi meetodeid saab üle kirjutada
overridevõtmesõnaga. - Vanema klassi realiseerimisele pääseb ligi
supervõtmesõnaga.
Näide:
class Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() {
print("Määramata heli")
}
}
class Dog: Animal {
func bark() {
print("Woof!")
}
override func makeSound() {
print("Woof-woof!")
}
}
let myDog = Dog(name: "Baron")
myDog.makeSound() // Väljund: Woof-woof!
myDog.bark() // Väljund: Woof!
Oluline on meeles pidada, et liigne või valesti kasutatud pärimine võib põhjustada koodi paindlikkuse ja hooldatavuse probleeme (näiteks "hapra baasklassi" probleem). Swift eelistab sageli teisi mehhanisme, nagu kompositsioon ja protokollid, paindlikkuse saavutamiseks.