Jestem niezaznajomiony ze słowem "podtyp" po przejrzeniu the wikipedia article.Kiedy substytucja Liskov odnosi się do podtypów, czy chodzi o klasy pochodne w kontekście C#?
Wziąłem Liskov podstawienie znaczyć, jeśli masz metodę, która zajmuje Animal
, powinieneś być w stanie przejść w Cat
lub Animal
gdzie Cat : Animal
bez jakichkolwiek niezamierzonych skutków ubocznych.
Czy to oznacza podstawienie Liskov?
Tak, w zasadzie. Oczywiście zwykle * będą * możliwe do odróżnienia różnice, w przeciwnym razie nie zawracalibyśmy sobie głowy różnymi podklasami - ale dopóki wszyscy przestrzegają umowy interfejsu/klasy bazowej, a to wszystko zależy od klienta, to wszystko powinno działać. (Czułem, że jest to zbyt proste, aby dodać jako odpowiedź). –
Dlaczego głosowanie na zamknięcie tego pytania jako "nie jest konstruktywne"? – ken2k
Dzięki, nie byłem pewien, czy to może być odniesione do sposobu, w jaki można używać typów takich jak int/double zamiast siebie. Jeśli umieścisz go w polu odpowiedzi, mogę oznaczyć go jako odpowiedź. – NibblyPig