lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘...

23
OOP Introduzione al polimorfismo CC BY ALESSANDRO URSOMANDO DIAPOSITIVA 2 LE TRE CARATTERISTICHE FONDAMENTALI DELLA OOP OOP

Transcript of lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘...

Page 1: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

OOP

Introduzione al polimorfismo

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 2

LE TRE CARATTERISTICHEFONDAMENTALI DELLA OOP

� OOP

����������������

������������� �������������

����������������

�������������� ���������� ����

��� ����������

� �� ���� �

Page 2: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 3

� OOP

���� �� ���� ����� ��� ������������������

�������� ������������������������ ��������� ����������� ����������

POLIMORFISMO

������������������������������

����������

������ �� ���� ������� ��

���������������������������

�������������� ��

�������������������������� ���� ��������������

��������� ��� �������������������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 4

� OOP

���� �� ���� ����� ��� ������������������

�������� ������������������������ ��������� ����������� ����������

POLIMORFISMO

����� ��������������������������

����������

������ �� ���� �������������

���������������������������

������ ������������������ ������������

������������������� ���� ��������������

�� ������ ���������������� �

Page 3: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

OOP

Polimorfismo dei metodi

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 6

� OOP

POLIMORFISMO DEI METODI

�������������� �������� �� ���� ����� ��� ������������������

�������� ������������������������ ��������� ����������� ����������

���!������ ���������������������������

"������������ ��� �� ��������������������� �������

���� �����#��� ������������� ������ ��� ���������

$�� �� �������������������#��������� ���#�����������

Page 4: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 7

� OOP

Manager

...

Impiegato

...

Persona

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

%������������!����������� ������� �����

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 8

%���������������� ������ ������� ��&��

�# ������� ���!������� ������ ������������������� �

�#������� ���!������� ������ �������������������

Manager

...

Impiegato

...

Persona

...

� OOP

Impiegato

...

+ String toString()

...

Persona

...

+ String toString()

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

Page 5: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 9

Manager

...

Impiegato

...

Persona

...

� OOP

Impiegato

...

+ String toString()

...

Persona

...

+ String toString()

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

����������� ��� �������� ���������� ������ ��������� ��������� �������� �������� ��

������ ��� ��������������� ��� ���������������� ��� ����������

%������������!�����������������

��!��������������������

Invoca (implicitamente)la toString di Persona

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 10

Manager

...

Impiegato

...

Persona

...

� OOP

Impiegato

...

+ String toString()

...

Persona

...

+ String toString()

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

����������� ��� �������� ���������� ������ ��������� ��������� �������� �������� ��

������ ��� ��������������� ��� ���������������� ��� ����������

%������������!�����������������

��!��������������������

Invoca (implicitamente)la toString di Impiegato

Page 6: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 11

Manager

...

Impiegato

...

Persona

...

� OOP

Impiegato

...

+ String toString()

...

Persona

...

+ String toString()

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

����������� ��� �������� ���������� ������ ��������� ��������� �������� �������� ��

������ ��� ��������������� ��� ���������������� ��� ����������

%������������!�����������������

��!��������������������

Invoca anch’essa (implicitamente)la toString di Impiegato

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 12

Manager

...

Impiegato

...

Persona

...

� OOP

Impiegato

...

+ String toString()

...

Persona

...

+ String toString()

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

����������� ��� �������� ���������� ������ ��������� ��������� �������� �������� ��

������ ��� ��������������� ��� ���������������� ��� ����������

%������������!�����������������

��!��������������������

"��������� ����� �������������� ������������

�������������� ���!�����������������

����������������������������� ���������� ������

��������� �����&� ���������������

'� ����������������������

Page 7: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 13

� OOP

%������������!����������� ������� �����

����������� ��� ��������� ������������������ �������� ��

%������������!�����������������

��!��������������������

��� ���� ������������������ ���� ���������������

(�������

���������� ����� �������������� ������������

�������������� ���!�����������������

����������������������������� ���������� ������

��������� �����&� ����������������

Manager

...

+ int getBustaPaga()

...

Impiegato

...

+ int getBustaPaga()

...

POLIMORFISMO DEI METODIMEDIANTE OVERRIDING

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 14

� OOP

POLIMORFISMO DEI METODIMEDIANTE OVERLOADING

)�������� ����������������������������������

���������� �����������������#��������������������� �����

���������� ���� ���������#������������������� ������� ����� �

Page 8: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 15

� OOP

POLIMORFISMO DEI METODIMEDIANTE OVERLOADING ORIZZONTALE

Data

...

+ int confrontaCon(Data)

+ int confrontaCon(int, int, int)

...

%������������!������ �����

�������� ��� ����� ������ ������� ����� ��

%������������!�����������������

��!��������������������

��� ����� ��!�����"���������� ����� ��!�����"����#$%$�#&'��

"��������� ����� ���������������

������������������������

�������������� ���!�����������������

������������������������ ������

�������#���� ���������������&� ����������������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 16

� OOP

POLIMORFISMO DEI METODIMEDIANTE OVERLOADING VERTICALE

%������������!����������� ������� �����

��������� ��� ������ �������(��) ���� �����(�� ��

%������������!�����������������

��!��������������������

������$(%��) ����*�$+�$�(��

"��������� ����� ���������������

���� ����������������

�������������� ���!�����������������

����������������������������� ���������� ������

��������� �����&� ����������������

Punto3d

...

+ void set(int, int, int)

...

Punto

...

+ void set(int, int)

...

Page 9: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

OOP

Polimorfismo delle classi

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 18

INTRODUZIONE

� OOP � POLIMORFISMO DELLE CLASSI

*����������� ������������� �������� �� ���� ����� ��� ������������������

�������� ������������������������ ��������� ����������� ����������

)���������������� ���������������� ���������� ��� �� ���

������������ ����� ������������������ ����� �������

+ �������������� ������� ������� ��� ��+

�����������������������!����� ������������������������������ ������

",&������� ��-��������������������������� ������������

��������������������� �� �������� ����������� ������

��������������������� �����

Page 10: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 19

CASTING TRA CLASSI

� OOP � POLIMORFISMO DELLE CLASSI

Gatto

...

Animale

...

%������������!����������� ������� �����

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 20

CASTING TRA CLASSI

� OOP � POLIMORFISMO DELLE CLASSI

Gatto

...

Animale

...,���������,������ ��� ,������� ��-���� ��-���� ���� -����� ��

��,������ ���-�����

%������������!�����������������

��!����������������

.�� �/��������� ������0������������������������� �������������

�#��������������� ��������� ����������������������� �

$�� ��������������������������������� �� ��������

����������������

��������������������!�������������

(#���������������� ����������������������������������1

Page 11: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 21

POLIMORFISMO DELLE CLASSI

� OOP

%������������!����������� ������� �����

Animale {ABSTRACT}

Gatto Asino

%����������������������������������2���� ����������������

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 22

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

Page 12: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 23

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

Dichiaro la var x di tipo Animale

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 24

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

se succede qualcosa

Page 13: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 25

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

x punta a un’istanza di Gatto

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 26

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

altrimenti

Page 14: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 27

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

x punta a un’istanza di Asino

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 28

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

in entrambi i casi recupera il verso

dell’animale x

Page 15: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 29

)� ����!������ ���������������

�����������������������4�����#�����������0�����

�������������!��������������������������

!�������������������2����� ������� ��5

������ ����������������������������� �/�

���������������������2�����

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

�������� ��� �&�

�������������������� ���������&

�����������4�����#��������

���0����������������

���������������������� ��� ��

���������2����� �������

$#��������4���������������������������� �/�������������� ������������������� ������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 30

)� ����!������ ���������������

�����������������������4�����#�����������0�����

�������������!��������������������������

!�������������������2����� ������� ��5

������ ����������������������������� �/�

���������������������2�����

POLIMORFISMO DELLE CLASSI

� OOP

��������� ������� ������� ����!����������������

,�������.� ��� -����� ��

%������ ����������������!�������������������������� �� �����������3

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

�������� ��� �&�

�������������������� ���������&

�����������4�����#��������

���0����������������

���������������������� ��� ��

���������2����� �������

.��� �������������������������������� �����

��������������6� � �������� ����������������������������� ������

Page 16: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 31

$�������� ���� ����������������

�� ������ ����� �������������������������� ������

COS’È IL BINDING DINAMICO?� OOP � POLIMORFISMO

���������� ������ ������������������ ������!�����

�� ���������������������������� �������������� ������#�����������

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 32

.������������ ������������������������������ ��� ��

����������7����� ������ ��������������������������� �������

BINDING STATICO

� OOP � POLIMORFISMO

������� ������� ���� .��/

0

!������� �2���3�22���44��! ������������

�����������

8����������������������������

Page 17: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 33

.������������ ������������������������������ ��� ��

����������7����� ������ ��������������������������� �������

BINDING STATICO

� OOP � POLIMORFISMO

������� ������� ���� .��/

0

!������� �2���3�22���44��! ������������

�����������

8����������������������������

+����!������� �2���3�22���44�+�(������! ������������+�%�������������������

(�'��������� ������� ���� .��/(�&����� (�+��0 questa invocazione di funzione

era mappata con un’istruzione di basso livello del tipo

jump 326

��1����������� ������ ���������������� ��

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 34

������&� �����������������������6� � ��������&������������������ ���

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

COS’È IL BINDING DINAMICO?� OOP � POLIMORFISMO

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

All’indirizzo di quale getVerso() dovremmo spedire l’esecuzione?

8��������������1

���������� �����������9��

����� ������:�� ���

�!��������������������;����

�����������������������������������������

$���������������;����

Page 18: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 35

Animale {ABSTRACT}

+ String getVerso() {ABSTRACT}

Gatto

+ String getVerso()

Asino

+ String getVerso()

BINDING DINAMICO

� OOP � POLIMORFISMO

,�������.��! � ��/

.� ��� -����� ��0����� /

.� ��� ,����� ��0������ ���. ���1�������

%������������� ������ �&�!�����&

���������������#��� �������������������

���������������������

��������������������;�����

All’indirizzo di quale getVerso() dovremmo spedire l’esecuzione?

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 36

.. PAUSA ..

Page 19: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 37

UN ARGOMENTO IN SOSPESO

� OOP � POLIMORFISMO

����������������������� ����

����������������������� �����

������ �� ��������������������������

�������������������

����������������� ��������

��������������� ����������������

�������� ������������������������������

������������������� ����<

������������������� ���� ���

����������������� � �� ��������������������

�������������������������������

OOP

Polimorfismo avanzato

Page 20: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 39

"������������������������ &�

��������� ���� ������� �� ��������� ����� ������� �����&�

��������������������� ����������������� �

���#����������������������� ��������������"�6� � �

������������ ��� �������!������ �� �������������������

POLIMORFISMO AVANZATO

� OOP

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 40

POLIMORFISMO AVANZATO

� OOP

Animale

Asino Corvo SqualoGatto

%������������!����������� ������� ������

Page 21: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 41

POLIMORFISMO AVANZATO

� OOP

Animale

Asino Corvo SqualoGattoGatto

...

+ String getColorePelo()

...

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 42

CAST ESPLICITO

� OOP � POLIMORFISMO AVANZATO

Animale

Asino Corvo SqualoGattoGatto

...

+ String getColorePelo()

...

%�)=�80�>).$�%�="

(����������� ��������� ����!������

��������������������������� ������ ���

����������������������#�����������

��������� �����

,���������,������ ��� -����� ��,���������,������ ��� -����� �� -�������-���� ��-�������,�������

,���������,������ ��� -����� �� -�������-���� ��-�������,������������� �����-���� ���"������������

Supponiamo di voler invocare il metodo getColorePelo()

Page 22: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 43

COLLEZIONI ETEROGENEE

� OOP � POLIMORFISMO AVANZATO

Animale

Asino Corvo SqualoGattoGatto

...

+ String getColorePelo()

...

%"$$>?�"8��>=>*"0>8>>

@����������� �������� ����

���������������������������� �����

����� �����&���<��������������

������������� ��� ���� �����

���������������� ������������

,������56������������� ,������5�226�,������56������������� ,������5�226� ,������56������������� ,������5�226� �������5(�6������-����� ��

,������56������������� ,������5�226� �������5(�6������-����� ���������5'&6������,����� ��

,������56������������� ,������5�226� �������5(�6������-����� ���������5'&6������,����� ���������5&�6������"��7�� ��

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 44

INSTANCEOF

� OOP � POLIMORFISMO AVANZATO

Animale

Asino Corvo SqualoGattoGatto

...

+ String getColorePelo()

...

�8)=�8%>"'

.�������� ���������� ���������������

��������������� ����� ������������

��������� ��������������� ���

,������56������������� ,������5�226�,������56������������� ,������5�226� ,������56������������� ,������5�226� �! ��������5�6������� ��! -������/

0

,������56������������� ,������5�226� �! ��������5�6������� ��! -������/

-�������-���� ��-������������5�6�

0

,������56������������� ,������5�226� �! ��������5�6������� ��! -������/

-�������-���� ��-������������5�6������� �����-���� ���"������������

0

Page 23: lezione 09 - polimorfismo · cc by diapositiva 33 alessandro ursomando. ˝ ˘ ˝ ˘ ˇ 7 ˘ ˘ ˘ ˘ binding statico oop polimorfismo ˙ˇ .

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 45

GETCLASS

� OOP � POLIMORFISMO AVANZATO

Animale

Asino Corvo SqualoGattoGatto

...

+ String getColorePelo()

...

0>=%$�))

.��� ���� ������� ��������������������

����������������������

��������������"�6� � ����%����

,������56������� ,������5�226�,������56������� ,������5�226� ,������56������� ,������5�226� �! ��5�6 ���"���������586 ���"������/

0

,������56������� ,������5�226� �! ��5�6 ���"���������586 ���"������/

0

CC BY

ALESSANDRO URSOMANDODIAPOSITIVA 46

� OOP

%��#������������!���������������������!������ ��� ���������������������

���������������� ���������������1

POLIMORFISMO

2����!������!������������������ ��� ������������ ���&� ��������������������&

�#������������ ��� ����������������%���� ��������������������������������������������

��� �����������!�����

������������������� ������������

#����

������������������� ���������������� �&

����������������������������������������&

����������������������������������������� �����������&

������������������������������������������� ���� ����

���������!������ ��������������������������������� ����� �

���������� � ��������������������� ��������� ����� ������������ ��