Junior — Middle
Je možné pri prepisovaní metód použiť rôzne názvy parametrov v signatúre?
sobes.tech AI
Odpoveď od AI
Во Swift-у, при презапису на методи, можете да користите различни имена на параметри во сигнатурата, но е важно да разберете дека за компајлерот важни се надворешните имена на параметрите (external parameter names), а не внатрешните (internal parameter names).
При презаписување на метод, надворешниот интерфејс мора да се совпадне за методот правилно да се презапише. Внатрешните имена на параметрите можат да се разликуваат, бидејќи се видливи само внатре во телото на методот.
Пример:
class Parent {
func greet(name personName: String) {
print("Hello, \(personName)")
}
}
class Child: Parent {
override func greet(name friendName: String) { // надворешниот параметар "name" се совпадне
print("Hi, \(friendName)")
}
}
Тука, надворешниот параметар name се совпадне, а внатрешните имиња (personName и friendName) се разликуваат — тоа е дозволено.