Podstawy Programowania Aplikacji Korporacyjnych Ćwiczenia 2 – extra
1. Stwórz klasę abstrakcyjną bez żadnych metod. Następnie stwórz klasę dziedziczącą i dodaj do niej jedną metodę. W kolejnym kroku stwórz metodę statyczną, która przyjmuje jako argument referencję do klasy bazowej, rzutuje ją w dół na typ klasy pochodnej i wywołuje metodę. Sprawdź w metodzie main() czy to działa. Następnie zmodyfikuj kod tak, aby nie było konieczności rzutowania na typ klasy pochodnej.
2. W Javie przekazywanie zawsze jest przez wartość. Natomiast trudny do zrozumienia jest fakt, że Java przekazuje obiekty jako referencje i to te referencje przekazywane są przez wartość. Napisz program, który udowodni to założenie.
3. Stwórz abstrakcyjną klasę nadrzędną „Figura”. Niech zawiera ona abstrakcyjną metodę „Pole powierzchni”. Następnie stwórz klasy dziedziczące „Kwadrat”, „Koło” i „Trójkąt”. Zaimplementuj w nich metody „Pole powierzchni” w zależności od rodzaju figury. Następnie stwórz osobną metodę „Wywołaj” przyjmującą jako parametr obiekty klas „Kwadrat”, „Koło” lub „Trójkąt” i wywołującą ich metodę „Pole powierzchni”. Zastosuj polimorfizm i wyjaśnij jak on działa.
4. Zaimplementuj następującą strukturę klas:
Upewnij się, że konstruktor klasy Cylinder uruchamia również konstruktor klasy Circle (parametrowy lub bezparametrowy).
Zaimplementuj wszystkie metody.
Stwórz program testujący zaimplementowane klasy.
5. Zaimplementuj następującą strukturę klas:
6. Dziedziczenie vs kompozycja – stwórz klasę Line, która składa się z dwóch obiektów typu Point.
Zauważ różnice pomiędzy kompozycją, a dziedziczeniem.
7. Zmodyfikuj klasy z zadania 1, tak aby wykorzystywały kompozycję: