Junior — Middle
Je možné v deklarácii uviesť protokol rozšírenia s odkazom na iný protokol, aby zdedil jeho vlastnosti?
sobes.tech AI
Odpoveď od AI
V Swiftu môžu protokoly dediť vlastnosti a metódy od iných protokolov. Avšak protokoly rozšírení (extension protocols) nie sú deklarované samostatne — rozšírenia sa používajú na existujúce protokoly.
Ak chcete, aby jeden protokol dedil od iného, deklarujete to explicitne:
protocol A {
func methodA()
}
protocol B: A {
func methodB()
}
Tu protokol B dedí od protokolu A a vyžaduje implementáciu oboch metód.
Rozšírenia protokolov (extension) umožňujú pridanie implementácií metód, ale nie deklarovanie nového protokolu s dedičstvom. Preto je možné deklarovať extension protokol s dedičstvom vlastností iného protokolu iba prostredníctvom bežného dedičstva protokolov, nie prostredníctvom rozšírení.