java:generics_inheritance

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
java:generics_inheritance [2015/03/15 21:42]
gthanos
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?​300  ​}} ​+{{  :​java:​generics_inheritance1.png?​400  ​}} ​
  
 Μπορείτε να υλοποιήσετε παραμετρικούς τύπους δεδομένων που κληρονομούν από άλλους παραμετρικούς τύπους δεδομένων. Για παράδειγμα από την 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)