Programowanie 2 - Ćwiczenia 11


Poprzednie Następne
Temat: Dziedziczenie


Podczas tych zajęć, zostaną stworzone nowe klasy, z których dotychczasowe klasy będą dziecziczyć.
Dziedziczenie stosuje się wszędzie tam, gdzie jedne obiekty są podklasą innych. Np. sklep-księgarnia, lub zwierzę-żachwa. Natomiast NIE JEST dziedziczeniem relacja np. księgarnia-siećKsięgarni lub żachwa-akwarium, gdyż te obiekty są zupełnie różnego typu.
Poniżej zostały przedstawione zdania dla grupy o 9:45, a po nim zadania dla grupy o 11:30. W czasie zajęć było szczegółowo wyjaśniane w jaki sposób działają (lub mają działać) mechanizmy dziedziczenia oraz kiedy należy je stosować.

Grupa 9:45

Zadanie 11

Zaimplementuj klasę Sklep, z której dziedziczyć będzia klasa Księgarnia.

Aby to zrobić stwórz klasę Sklep i przenieś do niej wszystkie atrybuty, które są specyficzne dla sklepu zamiast księgarni (nazwa, adres, rok założenia, nazwa właściciela, liczba pracowników).
Aby przeniesione atrybuty działały prawidłowo należy im zapewnić poziom dostępności protected, co oznacza, że pola będą widoczne jedynie w środku klasy oraz w klasach, które z niej dziedziczą. Np.
  protected String nazwa;
Przenieś do klasy Sklep wszystkie metody, które dotyczą atrybutów przeniesionych do tej klasy. W Księgarni nie powinno zostać nic, co nie dotyczy jej bezpośrednio.
Na koniec stwórz konstruktor w klasie Sklep, który będzie działał analogicznie jak ten w Ksiegarni, tylko będzie dotyczył jedynie wybranych pól. W konstruktorze Księgarni usuń ustalanie pól, które zostały z niej usunięte, oraz wykonaj konstruktor Sklepu poprzez polecenie super. Np:
   public Ksiegarnia(String nazwa_in, String adres_in, int rok_zalozenia_in, String nazwa_wlasciciela_in)
   {
     super(adres_in, nazwa_in, rok_zalozenia_in, nazwa_wlasciciela_in);
     liczba_ksiazek = 0;
   }
Tak zmodyfikowany kod w żaden sposób nie powinien zmienić funkcjonowania programu. Jako rozwiązanie zadania należy wysłać jedynie pełny opis klas Sklep i Księgarnia.

Grupa 11:30

Zadanie 11

Zaimplementuj klasę StworzenieAkwariowe, z której dziedziczyć będzia klasa Żachwa.

Aby to zrobić stwórz klasę StworzenieAkwariowe i przenieś do niej wszystkie atrybuty, które są specyficzne dla stworzenia akwariowego zamiast żachwy (wysokość, szerokość, nazwa właściciela, liczba dzieci).
Aby przeniesione atrybuty działały prawidłowo należy im zapewnić poziom dostępności protected, co oznacza, że pola będą widoczne jedynie w środku klasy oraz w klasach, które z niej dziedziczą. Np.
  protected String nazwa;
Przenieś do klasy StworzenieAkwariowe wszystkie metody, które dotyczą atrybutów przeniesionych do tej klasy. W Żachwie nie powinno zostać nic, co nie dotyczy jej bezpośrednio.
Na koniec stwórz konstruktor w klasie StworzenieAkwariowe, który będzie działał analogicznie jak ten w Żachwie, tylko będzie dotyczył jedynie wybranych pól. W konstruktorze Żachwy usuń ustalanie pól, które zostały z niej usunięte, oraz wykonaj konstruktor StworzeniaAkwariowego poprzez polecenie super. Np:
  public zachwa(int wysokosc_in, int szerokosc_in, String nazwaWlasciciela_in)
  {
    super(wysokosc_in, szerokosc_in, nazwaWlasciciela_in);
    przytwierdzenie = false;
    iloscMozgu = 1;
  }
Tak zmodyfikowany kod w żaden sposób nie powinien zmienić funkcjonowania programu. Jako rozwiązanie zadania należy wysłać jedynie pełny opis klas StworzenieAkwariowe i Żachwa.