Sobes.tech
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.