JAVA 11 Dziedziczenie

background image

Przemysław Wionczyk

JAVA

Dziedziczenie

Dziedziczenie

1 / 7

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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:
11 Dziedzictwo cywilizacyjne Indii i Chin
java 11
zarządzanie produkcją (11 str), ŚCIĄGI Z RÓŻNYCH DZIEDZIN, zarzadzanie
ĆW Dziedziczenie gr krwi! 11 09r
Biol-11, dużo z dziedzin naukowych i nietylko, Biologia
DKE (5) 07.11.2007, Dziedzictwo Kulturowe europy (5)
java 22 11
zarządzanie finansami przedsiębiorstw (11 str), ŚCIĄGI Z RÓŻNYCH DZIEDZIN, zarzadzanie
Java Script (11)
genetyka dziedziczenie związane z płcią 05 11 10 13 01 11
143030393X {72191ACF} Fast Track to Sun Certified Java Programmer (SCJP) 5 0 Upgrade Exam [Tong 2006
Naomi Klein, Globalizacja doktryny Likudu Prawdziwe dziedzictwo 11 września
Zarz[1] finan przeds 11 analiza wskaz
11 Siłowniki
11 BIOCHEMIA horyzontalny transfer genów
PKM NOWY W T II 11

więcej podobnych podstron