Aktywne Wpisy
czykoniemnieslysza +302
olx Kraków mieszkania ok. 50 metrów, ceny od 800k w górę xDxD Zakładajcie rodziny śmiało
#nieruchomosci
#nieruchomosci
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
https://helion.pl/blog/mnemonik-solid-l-jak-liskov-substitution-principle-55
Screen z częścią, która wprowadza w błąd jest niżej.
Tu post z wyjaśnieniem:
https://4programmers.net/Forum/C_i_.NET/372614-zasada_podstawienia_liskov
#programista15k #programista25k #programowanie #programista
"Musi zajść równość: (...)"
bo klasa powinna się zachowywać w ten sam sposób. czyli w przykładach z dizedziczeniem prosoką i kwadrat nadal metoda Area powinna zwrócić pole ale wartość może być inna. Zresztą moga byc metody które nić nie zwracają. Np możemy mieć metody Validate() i Send(). Jeśli w bazowej Send() robi Validate() to i w potomnej też Send() musi zrobić Validate(). Nie wynik ma
1. Kod używający klasy jest implementowany pod kontrakt określony dla klasy bazowej i *nie polega* na wiedzy o tym jakiej klasy jest obiekt ani nie polega na żadnych specyficznych szczegółach implementacyjnych klas pochodnych. Stąd jak masz gdzieś jakieś
instanceof
czy używasz innego podobnego mechanizmu do rozpoznania z jaką implementacją masz do czynienia, to łamiesz LSP.2.
a.MyMethod()
zawsze zwraca string o długości 5 a klasa potomna zwraca długość 6 to mamy pogwałcenie tej zasady. Z drugiej strony ten sam kod może być całkowicie ok,