0Pricing
Dart Academy · Lekcja

Polimorfizm dzięki wspólnym typom

Programowanie pod kątem typu, a nie klasy

Polimorfizm dzięki wspólnym typom to bezpłatna lekcja Dart Academy na CoddyKit. To lekcja 3 z 4. 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 Dart Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Dart Academy zawiera 4 lekcji w sumie.

Co oznacza polimorfizm

Polimorfizm pozwala, aby jeden typ zastępował wiele innych. Wywołują Państwo metodę na wspólnym typie, a każdy obiekt odpowiada na swój sposób.

Programowanie względem typu

Zamiast wskazywać konkretną klasę, zależą Państwo od wspólnego nadtypu. Kod działa z każdym obiektem, który pasuje do tego kształtu.

void render(Shape s) => print(s.area());

Wspólny typ bazowy

Najpierw należy utworzyć abstrakcyjną klasę bazową, która zadeklaruje wspólną metodę implementowaną na różne sposoby przez każdy podtyp.

abstract class Shape {
  double area();
}

Wiele podtypów, jeden kształt

Każdy podtyp implementuje area na swój sposób, ale wszystkie podtypy nadal są traktowane jako Shape.

class Circle extends Shape {
  double area() => 28.3;
}

Dynamiczne wysyłanie metod

W czasie działania Dart wybiera metodę rzeczywistego obiektu. To dispatch sprawia, że to samo wywołanie uruchamia inny kod dla każdego obiektu.

Shape s = Circle();
s.area(); // runs Circle.area

Lista różnych kształtów

Ponieważ obiekty mają wspólny typ, można zebrać różne obiekty na jednej liście List i traktować je jednolicie.

List<Shape> shapes = [Circle(), Square()];

Polimorficzne iterowanie

Jedna pętla obsługuje każdy kształt. Nie trzeba sprawdzać konkretnej klasy — po prostu uruchamia się właściwe area.

for (var s in shapes) {
  print(s.area());
}

Otwarte na rozszerzenia

Później można dodać zupełnie nowy podtyp Shape, a istniejące pętle od razu go wykorzystają. Polimorfizm sprawia, że kod pozostaje otwarty na rozwój.

class Triangle extends Shape {
  double area() => 12.0;
}

Interfejsy działają tak samo

Wspólne typy mogą również pochodzić z implements. Każda klasa implementująca interfejs może bezpośrednio współpracować z tym samym kodem.

void log(Printable p) => p.printOut();

Nie trzeba sprawdzać typów

Dobry kod polimorficzny rzadko używa sprawdzeń is. Wspólny typ już gwarantuje istnienie metody, dzięki czemu logika pozostaje przejrzysta.

Dlaczego to ważne

Polimorfizm eliminuje długie łańcuchy if-else i powtarzające się instrukcje switch. Można pisać elastyczny kod, który dostosowuje się do nowych typów bez edytowania istniejącego kodu. 🌱

Szybkie sprawdzenie

Jedno krótkie pytanie dotyczące polimorfizmu.

Podsumowanie

Polimorfizm oznacza programowanie względem wspólnego typu, przy czym każdy obiekt zachowuje się na swój sposób. Dzięki niemu kod pozostaje elastyczny i otwarty na nowe podtypy. ✨

Często zadawane pytania

Czy lekcja „Polimorfizm dzięki wspólnym typom” jest bezpłatna?

Tak — pełny tekst „Polimorfizm dzięki wspólnym typom” 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 Dart Academy, przejdź na CoddyKit PRO. Kurs Dart Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Polimorfizm dzięki wspólnym typom”?

Programowanie pod kątem typu, a nie klasy Ćwiczysz Dart 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ąć Dart Academy?

Nie wymagamy żadnego doświadczenia. Dart 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 3 z 4.

Ile czasu zajmuje lekcja „Polimorfizm dzięki wspólnym typom”?

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 Dart Academy?

Tak. Każda lekcja Dart 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. Klasy abstrakcyjne i metody abstrakcyjne
  2. Niejawne interfejsy i implements
  3. Polimorfizm dzięki wspólnym typom
  4. Kompozycja zamiast dziedziczenia
← Powrót do Dart Academy