java:generics_inheritance

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision Both sides next revision
java:generics_inheritance [2015/03/15 21:18]
gthanos created
java:generics_inheritance [2015/03/15 21:42]
gthanos
Line 14: Line 14:
 </​code>​ </​code>​
 Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3-5 διότι οι κλάσεις ''​Integer''​ και ''​Double''​ είναι υποκλάσεις της κλάσης ''​Number''​. Δεν ισχύει όμως το ίδιο για την γραμμή 8 καθώς η κλάση ''​Box<​Double>''​ **__δεν είναι__** υποκλάση της κλάσης ''​Box<​Number>'',​ όπως δείχνει το παρακάτω σχήμα. Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3-5 διότι οι κλάσεις ''​Integer''​ και ''​Double''​ είναι υποκλάσεις της κλάσης ''​Number''​. Δεν ισχύει όμως το ίδιο για την γραμμή 8 καθώς η κλάση ''​Box<​Double>''​ **__δεν είναι__** υποκλάση της κλάσης ''​Box<​Number>'',​ όπως δείχνει το παρακάτω σχήμα.
-{{  :​java:​generics_inheritance1.png?​500  ​}} ​+{{  :​java:​generics_inheritance1.png?​300  ​}} ​
  
 Μπορείτε να υλοποιήσετε παραμετρικούς τύπους δεδομένων που κληρονομούν από άλλους παραμετρικούς τύπους δεδομένων. Για παράδειγμα από την standard βιβλιοθήκη της Java μπορείτε να δείτε ότι ο τύπος ''​ArrayList<​E>''​ υλοποιεί το interface ''​List<​E>''​. Το interface ''​List<​E>''​ με την σειρά του επεκτείνει το interface ''​Collection<​E>''​. Έτσι μπορεί να οριστεί η παρακάτω ιεραρχία Μπορείτε να υλοποιήσετε παραμετρικούς τύπους δεδομένων που κληρονομούν από άλλους παραμετρικούς τύπους δεδομένων. Για παράδειγμα από την standard βιβλιοθήκη της Java μπορείτε να δείτε ότι ο τύπος ''​ArrayList<​E>''​ υλοποιεί το interface ''​List<​E>''​. Το interface ''​List<​E>''​ με την σειρά του επεκτείνει το interface ''​Collection<​E>''​. Έτσι μπορεί να οριστεί η παρακάτω ιεραρχία
java/generics_inheritance.txt · Last modified: 2016/02/26 11:15 (external edit)