Sobes.tech
Junior — Middle

Kas on võimalik kasutada erinevaid parameetrite nimesid meetodite ülekirjutamisel signatuuris?

sobes.tech AI

Vastus AI-lt

Swiftis, meetodite ülevõtmisel saab kasutada erinevaid parameetrite nimesid signatuuris, kuid oluline on mõista, et kompilaatorile on olulised välised parameetrite nimed (external parameter names), mitte sisemised (internal parameter names).

Meetodi ülevõtmisel peab väline liides vastama, et meetod õigesti üle kirjutataks. Siseparameetrite nimed võivad erineda, kuna need on nähtavad ainult meetodi keha sees.

Näide:

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

class Child: Parent {
    override func greet(name friendName: String) { // väline parameeter "name" vastab
        print("Hi, \(friendName)")
    }
}

Siin vastab väline parameeter name, ja sisemised nimed (personName ja friendName) erinevad — see on lubatud.