Sobes.tech
Junior — Middle

Se pot folosi nume diferite ale parametrilor în semnătură atunci când se suprascriu metode?

sobes.tech AI

Răspuns de la AI

În Swift, la suprascrierea metodelor, se pot folosi nume diferite pentru parametri în semnătură, dar este important să înțelegeți că pentru compilator, numele extern al parametrilor (external parameter names) sunt cele importante, nu cele interne (internal parameter names).

La suprascrierea unei metode, interfața externă trebuie să coincidă pentru ca metoda să fie suprascrisă corect. Numele interne ale parametrilor pot diferi, deoarece sunt vizibili doar în interiorul corpului metodei.

Exemplu:

class Parent {
    func greet(name personName: String) {
        print("Hello, \(personName)")
    }
}

class Child: Parent {
    override func greet(name friendName: String) { // parametrul extern "name" coincide
        print("Hi, \(friendName)")
    }
}

Aici, parametrul extern name coincide, iar numele interne (personName și friendName) diferă — acest lucru este permis.