Skip to content

Instantly share code, notes, and snippets.

@pjastr
Created December 2, 2017 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjastr/a35ae1519cc1597cb598f08e84e38d26 to your computer and use it in GitHub Desktop.
Save pjastr/a35ae1519cc1597cb598f08e84e38d26 to your computer and use it in GitHub Desktop.
  1. W nowym projekcie wykonaj poniższe czynności:
  • Stwórz klasę Osoba z polami imie i nazwisko. Następnie stwórz klasę potomną Student z polami rokStududió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 instrukcje Console.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 metodzie Main 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 metody WypiszInfo() w klasie Osoba dodaj virtual, a w klasie Student override. Jaka jest różnica?
  • Zmodyfikuj metodę WypiszInfo() w klasie Student używając base.WypiszInfo(); (o ile nie zrobiono tego wcześniej).
  • Narysuj diagram klas UML projektu.
  1. Zmodyfikuj kod z polecenia 1, by zamiast metody WypiszInfo() przesłonić metodę ToString() (zwróć uwagę na inny typ zwracany).

  2. Stwórz nowy projekt. A w nim wykonaj następujące czynności:

  • Dodaj abstrakcyjną klasę Figura, a w niej pola a,b,c (z modyfikatorem protected) i abstrakcyjną metodą ObliczPole().
  • Stwórz dwie klasy potomne Kwadrat i Trojkat dziedziczące z klasy Figura.
  • Stwórz obiekty z klasy Figura, Kwadrat, Trojkat (w razie potrzeby stwórz konstruktory). Czy wszystko jest możliwe?
  • Dodaj w klasach Kwadrat i Trojkat 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ą instrukcji foreach oblicz dla nich pola.
  • Narysuj diagram UML projektu.
  1. Stwórz klasę Osoba o dodaj do niej modyfikator sealed. Następnie spróbuj stworzyć klasę potomną Student. Jaki komunikat błędu otrzymujesz?

  2. W nowym projekcie wykonaj czynności:

  • stwórz klasę Aaa i dodaj w niej wrtualną metodę Metoda() typu void (ma wyświetlić string "Aaa").
  • stwórz klasę Bbb dziedziczącą po Aaa, w nowoutworzonej klasie przesłoń metodę Metoda() (ma wyświetlić string "Bbb") i dodaj do metody modyfikator sealed.
  • stwórz klasę Ccc dziedziczącą po Bbb, 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().
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment