Sobes.tech
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.