Junior — Middle
Kan een uitbreidingsprotocol worden gedeclareerd in een verklaring met vermelding van een ander protocol, zodat het zijn eigenschappen erft?
sobes.tech AI
Antwoord van AI
In Swift kunnen protocollen eigenschappen en methoden van andere protocollen erven. Extension-protocollen (extension protocols) worden echter niet afzonderlijk gedeclareerd — uitbreidingen worden toegepast op bestaande protocollen.
Als je wilt dat een protocol van een ander erft, declareer je dat expliciet:
protocol A {
func methodA()
}
protocol B: A {
func methodB()
}
Hier erft protocol B van protocol A en vereist het de implementatie van beide methoden.
Protocol-uitbreidingen (extension) maken het mogelijk om methodenimplementaties toe te voegen, maar niet om een nieuwe protocol met overerving te declareren. Daarom kan een extension-protocol met overerving van eigenschappen alleen via normale protocol-erfenis worden gedeclareerd, niet via uitbreidingen.