JAVA 11 Dziedziczenie


Przemysław Wionczyk JAVA
Dziedziczenie
Dziedziczenie
1 / 7
Przemysław Wionczyk JAVA
Dziedziczenie a kompozycja
W programowaniu obiektowym, tak jak się uczyliśmy przy C++,
mamy dwa rodzaje zależności między obiektami:
" kompozycja - obiekt może zawierać egzemplarze innych obiektów
wewnątrz (tak samochód zawiera silnik),
" dziedziczenie  obiekt dziedziczy cechy innego, prostszego i
dodaje do nich swoje, nowe cechy i funkcje.
2 / 7
Przemysław Wionczyk JAVA
Kompozycja
W tej sytuacji jako pola nowej klasy obok zwykłych zmiennych
typów prostych deklarujemy zmienne obiektowe innych klas, np.:
class public Auto {
boolean turbo;
Silnik silnik;
public Auto(float pojemnosc) {
silnik = new Silnik(pojemnosc);
turbo = true;
}
}
3 / 7
Przemysław Wionczyk JAVA
Dziedziczenie
Dziedziczenie w Javie wygląda podobnie jak w C++, a do jego
zapisu służy słowo kluczowe extends. Różnicą w stosunku do C++ jest
brak dziedziczenia wielokrotnego, którego jednak i tak nie omawialiśmy
przy C++ ze względu na brak czasu i niewielkie zastosowanie tej
konstrukcji. Pamiętać powinniśmy też o słowie kluczowym protected,
które daje dostęp do zmiennych i metod klasie dziedziczącej.
Z poziomu konstruktora nowej klasy, musimy z reguły użyć
konstruktora klasy bazowej. Wywołujemy go pisząc słowo super, a w
nawiasie pisząc parametry konstruktora tej klasy bazowej.
4 / 7
Przemysław Wionczyk JAVA
Dziedziczenie
class Auto {
Silnik silnik;
public Auto(float pojemnosc) {
silnik = new Silnik(pojemnosc);
}
}
class TIR extends Auto{
int lodownosc;
public TIR(int ladownosc) {
super(1.4);
this.ladownosc = ladownosc;
}
}
5 / 7
Przemysław Wionczyk JAVA
Przesłanianie metod
Dziedzicząc w Javie możemy przesłaniać metody które były w
klasie bazowej nowymi o identycznej nazwie i liście parametrów,
a mimo to mieć dostęp do wersji metody z klasy bazowej. Dostęp ten
otrzymujemy pisząc słowo super, po nim kropkę i nazwę metody z klasy
bazowej. Zatem jeśli klasa Auto i klasa TIR miałyby metody
przyspiesz(int doIlu), to aby użyć metody z klasy bazowej musielibyśmy
napisać:
super.przyspiesz(110);
6 / 7
Przemysław Wionczyk JAVA
Ćwiczenie
Zbuduj klasę Ssaka z informacjami o wieku, wadze i szybkości na
lądzie. Parametry te powinien ustawiać konstruktor, ale musimy mieć też
konstruktor bezparametrowy ustawiający te pola na jakieś podstawowe
wartości. Musimy mieć funkcję Przemieść(int oIle) która naszego ssaka
przesunie w nowe miejsce.
Następnie napisz klasę nietoperz, której dodamy funkcję Leć oraz
użyjemy tej metody Leć wewnątrz przesłoniętej metody Przemieść.
Dodatkowo napisz klasę kot z funkcją Skocz i funkcją Biegnij, a w
przesłoniętej Przemieść użyj biegania tylko gdy odległość > niż 1 metr.
7 / 7


Wyszukiwarka

Podobne podstrony:
06 Java dziedziczenie 0
1 Komunikacja Miedzykulturowa jako dziedzina nauki s 11 20 (2)
Dziedziczenie 1 26 11 2013
2005 11 Ghost Surfing Anonymous Surfing with Java Anonymous Proxy
11 (311)
java text FieldPosition
ZADANIE (11)
Psychologia 27 11 2012
java
java text CollationElementIterator
java io InvalidClassException
359 11 (2)
tworzenie aplikacji w jezyku java na platforme android
11

więcej podobnych podstron