0Pricing
Swift Academy · Lekcja

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.
  • override.

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

  1. Inicjalizator memberwise i metody mutating
  2. Dziedziczenie, overriding i final
  3. Kontrola dostępu (public/internal/fileprivate/private)
← Powrót do Swift Academy