Junior
Se poate moșteni o structură de la mai mulți părinți?
sobes.tech AI
Răspuns de la AI
Nu. În Objective-C și Swift, structurile nu suportă moștenirea multiplă.
În Swift, structurile au capacități semnificative, inclusiv protocoale, extensii, metode, proprietăți calculate, proprietăți stocate și initializatori.
Cu toate acestea, pentru atingerea unor scopuri similare în Swift, se utilizează:
-
Protocoale: Definează un set de cerințe (metode, proprietăți, initializatori). Un tip (structură sau clasă) poate conforma unuia sau mai multor protocoale, dobândind astfel "comportamentul" lor.
// Exemplu de protocol protocol Animal { var name: String { get } func makeSound() } // Structură conformă cu protocolul struct Dog: Animal { let name: String func makeSound() { print("Ham ham!") } } -
Extensii: Adaugă funcții noi unui tip existent fără a-i modifica codul sursă.
// Exemplu de extensie pentru String extension String { func reversedWords() -> String { let words = self.split(separator: " ") return words.reversed().joined(separator: " ") } } // Utilizarea extensiei let sentence = "Salut lume" print(sentence.reversedWords()) // Ieșire: lume Salut
Clasele în Swift suportă moștenirea simplă de la o clasă părinte, dar pot implementa multiple protocoale.