Junior — Middle
Lehet-e különböző paraméterneveket használni a szignatúrában a metódusok felülírásakor?
sobes.tech MI
Válasz az MI-től
Swiftben, módszerek felülírásakor különböző paraméternéven lehet megadni a szignatúrát, de fontos megérteni, hogy a fordító számára a külső paraméternévek (external parameter names) számítanak, nem a belső (internal parameter names).
A módszer felülírásakor a külső interfésznek egyeznie kell, hogy a módszer helyesen felülíródjon. A belső paraméternévek eltérhetnek, mivel csak a módszer testén belül láthatók.
Példa:
class Parent {
func greet(name personName: String) {
print("Hello, \(personName)")
}
}
class Child: Parent {
override func greet(name friendName: String) { // külső paraméter "name" egyezik
print("Hi, \(friendName)")
}
}
Itt a külső paraméter name egyezik, és a belső nevek (personName és friendName) eltérnek — ez megengedett.