Sobes.tech
Junior — Middle

Czy można używać różnych nazw parametrów w sygnaturze podczas nadpisywania metod?

sobes.tech AI

Odpowiedź od AI

W Swift, podczas nadpisywania metod można używać różnych nazw parametrów w sygnaturze, ale ważne jest, aby rozumieć, że dla kompilatora istotne są nazwy zewnętrzne parametrów (external parameter names), a nie wewnętrzne (internal parameter names).

Podczas nadpisywania metody, interfejs zewnętrzny musi się zgadzać, aby metoda została poprawnie nadpisana. Nazwy wewnętrzne parametrów mogą się różnić, ponieważ są widoczne tylko wewnątrz ciała metody.

Przykład:

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

class Child: Parent {
    override func greet(name friendName: String) { // zewnętrzny parametr "name" się zgadza
        print("Hi, \(friendName)")
    }
}

Tutaj zewnętrzny parametr name się zgadza, a nazwy wewnętrzne (personName i friendName) różnią się — jest to dozwolone.