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.areaLista 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
- Klasy abstrakcyjne i metody abstrakcyjne
- Niejawne interfejsy i implements
- Polimorfizm dzięki wspólnym typom
- Kompozycja zamiast dziedziczenia