Zaprojektować własną klasę z zaimplementowanymi metodami statycznymi i wirtualnymi.
Zademonstrować sposoby implementacji konstruktorów i destruktorów klas.
W oparciu o klasę z poprzedniego zadania zaprojektować klasę potomną z metodami przeładowanymi.
Zademonstrować programowo różnicę między pokrywaniem i ukrywaniem dziedziczonych metod.
Zademonstrować wyczerpująco niuanse wynikające z różnic w używaniu odziedziczonych metod statycznych i wirtualnych w obiektach klasy bazowej i potomnej.
Uwaga! Wszystkie zadania mają być zrealizowane w postaci aplikacji używających żądanych klas w widoczny sposób.