- W nowym projekcie wykonaj poniższe czynności:
- Stwórz klasę
Osoba
z polamiimie
inazwisko
. Następnie stwórz klasę potomnąStudent
z polamirokStududiów
,numerGrupy
,numerAlbumu
. Dodaj w obu klasach konstruktory domyślne i parametryczne (można wykorzystać kod z jednych z poprzednich ćwiczeń). - W obu klasach stwórz metody
WypiszInfo()
wyświetlające wszystkie pola z klasy na konsoli (mają to być tylko instrukcjeConsole.WriteLine()
z parametrami). - Dodaj
new
, aby pozbyć się ostrzeżenia (warning) w Visual Studio. Czemu takie rozwiązanie nie jest najlepsze? - Wykonaj rzutowanie w górę (
Osoba student1 = new Student()
) i wywołaj dla tego obiektu metodęWypiszInfo()
. - W klasie
Program
i metodzieMain
stwórz listę, dodaj na nią kilka osób i studentów i wywołaj metodęWypiszInfo()
. - Usuń
new
(dodane w trzecim podpunkcie). Następnie do metodyWypiszInfo()
w klasieOsoba
dodajvirtual
, a w klasieStudent
override
. Jaka jest różnica? - Zmodyfikuj metodę
WypiszInfo()
w klasieStudent
używającbase.WypiszInfo();
(o ile nie zrobiono tego wcześniej). - Narysuj diagram klas UML projektu.
-
Zmodyfikuj kod z polecenia 1, by zamiast metody
WypiszInfo()
przesłonić metodęToString()
(zwróć uwagę na inny typ zwracany). -
Stwórz nowy projekt. A w nim wykonaj następujące czynności:
- Dodaj abstrakcyjną klasę
Figura
, a w niej polaa
,b
,c
(z modyfikatoremprotected
) i abstrakcyjną metodąObliczPole()
. - Stwórz dwie klasy potomne
Kwadrat
iTrojkat
dziedziczące z klasyFigura
. - Stwórz obiekty z klasy
Figura
,Kwadrat
,Trojkat
(w razie potrzeby stwórz konstruktory). Czy wszystko jest możliwe? - Dodaj w klasach
Kwadrat
iTrojkat
przesłoniętą metodęObliczPole()
i wywołaj ją dla stworzonych obiektów. - Stwórz listę obiektów z klas pochodnych do klasy
Figura
. Następnie za pomocą instrukcjiforeach
oblicz dla nich pola. - Narysuj diagram UML projektu.
-
Stwórz klasę
Osoba
o dodaj do niej modyfikatorsealed
. Następnie spróbuj stworzyć klasę potomnąStudent
. Jaki komunikat błędu otrzymujesz? -
W nowym projekcie wykonaj czynności:
- stwórz klasę
Aaa
i dodaj w niej wrtualną metodęMetoda()
typuvoid
(ma wyświetlić string"Aaa"
). - stwórz klasę
Bbb
dziedziczącą poAaa
, w nowoutworzonej klasie przesłoń metodęMetoda()
(ma wyświetlić string"Bbb"
) i dodaj do metody modyfikatorsealed
. - stwórz klasę
Ccc
dziedziczącą poBbb
, w nowoutworzonej klasie spróbuj przesłonić metodęMetoda()
. Jaki komunikat błędu otrzymasz? - stwórz obiekt typu
Ccc
i wywołaj dla niego metodęMetoda()
.