Dziedziczenie, overriding i final
Utwórzcie klasę bazową, rozszerzajcie ją przez dziedziczenie, override ujcie metody i właściwości, wywołujcie super i blokujcie zachowanie za pomocą final .
Dziedziczenie, overriding i final to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 3 lekcji w sumie.
Przegląd
Swift obsługuje dziedziczenie w przypadku klas. Można przesłaniać zachowanie i wywoływać super. Słowo final służy do zablokowania dalszych zmian.
Klasa bazowa
Należy utworzyć klasę bazową z metodą instancji, którą podklasy mogą przesłaniać.
class Animal {
var name: String
init(name: String) { self.name = name }
func speak() -> String { "..." } // to be overridden
}
let a = Animal(name: "Thing")
print(a.speak())Przesłanianie metody
Podczas udostępniania nowej implementacji w podklasie należy użyć słowa kluczowego override.
class Dog: Animal {
override func speak() -> String { "woof" }
}
let d = Dog(name: "Rex")
print(d.speak()) // "woof"Wywołanie super
Należy wywołać super, aby ponownie użyć zachowania klasy bazowej i rozszerzyć je w podklasie.
class Cat: Animal {
override func speak() -> String {
let base = super.speak()
return base + " meow"
}
}
print(Cat(name: "Mimi").speak()) // "... meow"Przesłanianie i final
Można przesłaniać właściwości i metody. Użycie final dla klasy lub jej elementu blokuje dalsze tworzenie podklas lub przesłanianie.
class Vehicle {
var description: String { "vehicle" } // computed property
func drive() { print("move") }
}
class Car: Vehicle {
override var description: String { "car" } // override property
override func drive() { print("vroom") }
}
final class ElectricCar: Car { // cannot be subclassed
final override func drive() { print("zzzz") } // cannot be overridden further
}
let e = ElectricCar()
print(e.description)
e.drive()Uwagi i wskazówki
Uwagi:
- Należy preferować kompozycję zamiast głębokich hierarchii.
- Klasy lub ich elementy należy oznaczać jako final, chyba że planowane jest rozszerzanie przez dziedziczenie.
Słowo kluczowe final
Szybkie sprawdzenie: Które słowo kluczowe blokuje tworzenie podklas lub przesłanianie?
Podsumowanie
Podsumowanie: Należy definiować klasę bazową, przesłaniać metody i właściwości w podklasach, wywoływać super, aby ponownie używać istniejącej implementacji, oraz oznaczać typy i elementy jako final, aby zablokować ich zachowanie.
Często zadawane pytania
Czy lekcja „Dziedziczenie, overriding i final” jest bezpłatna?
Tak — pełny tekst „Dziedziczenie, overriding i final” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Dziedziczenie, overriding i final”?
Utwórzcie klasę bazową, rozszerzajcie ją przez dziedziczenie, override ujcie metody i właściwości, wywołujcie super i blokujcie zachowanie za pomocą final . Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.
Ile czasu zajmuje lekcja „Dziedziczenie, overriding i final”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Inicjalizator memberwise i metody mutating
- Dziedziczenie, overriding i final
- Kontrola dostępu (public/internal/fileprivate/private)