• Nie Znaleziono Wyników

Laboratorium 6 – Dziedziczenie, funkcje wirtualne i klasy abstrakcyjne

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium 6 – Dziedziczenie, funkcje wirtualne i klasy abstrakcyjne "

Copied!
1
0
0

Pełen tekst

(1)

Programowanie obiektowe, 2011

Urszula Libal

Laboratorium 6 – Dziedziczenie, funkcje wirtualne i klasy abstrakcyjne

Zad. 1

KLASA BAZOWA

Napisz klasę bazową Ssak zawierającą publiczne pole rasa (np. char*) oraz metodę Jedz(). Następnie korzystając z mechanizmu dziedziczenia zdefiniuj klasy pochodne Pies i Kot, zawierające dodatkową metodę publiczną Mow(), wypisującą na ekran „hau” lub „miau” odpowiednio. Stwórz obiekty typu Ssak, Pies i Kot, a następnie zaprezentuj ich możliwości.

Zad. 2

ZASTĘPOWANIE NAZW ZMIENNYCH

Mamy klasy Ssak, Pies i Kot z zadania 1. Dopisz w klasach Pies i Kot publiczne pole rasa (np. char*). Stwórz obiekty typu Ssak, Pies i Kot. Pole rasa z klasy bazowej zostanie przesłonięte, zastąpione (ang. override) w klasach pochodnych przez zdefiniowane w nich na nowo pole rasa.

Zad. 3

FUNKCJE WIRTUALNE - ZASTĘPOWANIE NAZW METOD

W klasie bazowej Ssak napisz wirtualną metodę publiczną Mow(), wypisującą na ekran jakiś komunikat.

W klasach pochodnych Pies i Kot pozostaw zdefiniowane poprzednio metody Mow() bez zmian. Wywołaj te metody dla obiektów typu Ssak, Pies i Kot.

• Jaki komunikat zostanie wyświetlony w wyniku wywołania Pies pies;

pies.Mow();

gdy w klasie Pies metoda Mow() zostanie zakomentowana?

• Jaki komunikat zostanie wyświetlony, gdy dla obiektu z klasy Kot wywołamy metodę Mow() z klasy bazowej Ssak, tzn.

Kot kot;

kot.Ssak::Mow();

Zad. 4

FUNKCJE CZYSTO WIRTUALNE I KLASY ABSTRAKCYJNE

Zdefiniuj metodę Mow() w klasie bazowej Ssak tak, aby była czysto wirtualna. Klasa Ssak jest wtedy klasą abstrakcyjną. W klasach pochodnych Pies i Kot pozostaw zdefiniowane poprzednio metody Mow() bez zmian. Wywołaj te metody dla obiektów typu Pies i Kot.

Spróbuj zadeklarować obiekt typu Ssak. Czy można stworzyć obiekt klasy abstrakcyjnej?

Pytania:

• Jaka jest różnica między przeciążaniem metod, a użyciem funkcji wirtualnych?

• Czy można stworzyć obiekt klasy abstrakcyjnej?

Cytaty

Powiązane dokumenty

W programie głównym zadeklarować obiekt klasy pochodnej, wypisać jego rozmiar, a następnie wywołać

// faktycznie tworzony jest obiekt klasy RECTANGLE // wszystkie inne jawne metody klasy są dostępne jako // odziedziczone z klasy

Pojawi się zatem mechanizm polimorfizmu - czyli metoda Rysuj, w zależności od obiektu, na którymjest wykonywana,.. sporządzi inny

Uczniowie mają przeczytać pozostałe, jeszcze nie przerobione tematy z działu czwartego (23-25), czytają też tematy już przerobione z tego działu (19-22).. Za to ocena w

W ramach ,,zajęć online”bardzo proszę o wykonanie pracy, którą sprawdzę w pierwszym tygodniu po wznowieniu zajęć.. Z mapki folklorystycznej, umieszczonej na s.89, bardzo

Stwórz klasę pochodną Pies dziedziczącą po klasie Ssak z dodatkowym polem imie (char*) oraz metodą Mow().. Klasa Pies będzie klasą bazową dla klasy Husky, która ma

Klasa Klasa implementuje też interfejs MouseListener, a więc jej obiekty mogą pełnić rolę słuchaczy zdarzeń typu MouseEvent.. Ponieważ implementuje interfejs MouseListener,

Djilas cały swój wysiłek koncentruje na uzasadnienie tezy mówiącej, że biurokracja radziecka jest odrębną klasą i nieuchronnie stać się musi grabarzem państwa