Zpo-11-wyk-Slajd30
Przykład 2
Drugi przykład jest bardziej skomplikowany i pokazuje, że realizacja tego przekształcenia może napotykać na problemy.
Tym razem w klasie Wydawnictwo są zdefiniowane dwie metody: wyznaczRegal (), która wskazuje, na którym regale powinno znaleźć się Wydawnictwo, oraz czyDuze (), określające rozmiar Wydawnictwa. Metody te są wykorzystane w konstruktorze klasy Książka, w którym wyznaczenie regału jest wykonywane tylko dla dużych Wydawnictw. Należy jednak zauważyć, że metoda czyDuze () jest pokryta w klasie Książka, co wskazuje, że metoda wyznaczRegal () jest wywoływana w nadklasie, natomiast metoda czyDuze () – lokalnie.
Taki graf wywołań powoduje, że nie można w prosty sposób przenieść fragmentu konstruktora Książki do klasy Wydawnictwo, ponieważ klasa ta posiada własną definicję metody czyDuze (), której nie można w takim wypadku zastosować.