This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:generics_inheritance [2015/03/19 15:40] gthanos |
java:generics_inheritance [2018/04/15 09:18] gthanos |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| doubleBox.add(new Double(10.1)); | doubleBox.add(new Double(10.1)); | ||
| - | box.boxTest(doubleBox); | + | box.boxTest(doubleBox); |
| </ | </ | ||
| - | Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3-5 διότι οι κλάσεις '' | + | Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3 έως και 8. Στις γραμμές 3-5 οι κλάσεις '' |
| - | {{ : | + | |
| + | {{ : | ||
| <WRAP center round 70% tip> Η έννοια της κληρονομικότητας σε αυτή την παράγραφο δεν έχει την αυστηρή έννοια της κληρονομικότητας μεταξύ τύπων δεδομένων που ορίσαμε σε προηγούμενες ενότητες. Περισσότερο εστιάζει στο πρακτικό ερώτημα κατά πόσο μπορούμε να χρησιμοποιήσουμε ένα τύπο δεδομένων στην θέση ενός άλλου τύπου (π.χ. ως όρισμα σε μία μέθοδο). | <WRAP center round 70% tip> Η έννοια της κληρονομικότητας σε αυτή την παράγραφο δεν έχει την αυστηρή έννοια της κληρονομικότητας μεταξύ τύπων δεδομένων που ορίσαμε σε προηγούμενες ενότητες. Περισσότερο εστιάζει στο πρακτικό ερώτημα κατά πόσο μπορούμε να χρησιμοποιήσουμε ένα τύπο δεδομένων στην θέση ενός άλλου τύπου (π.χ. ως όρισμα σε μία μέθοδο). | ||
| Line 21: | Line 22: | ||
| Οι σχέσεις κληρονομικότητας μεταξύ παραμετρικών τύπων μπορούν να οριστούν ως εξής. Αν ένα παραμετρικό interface κληρονομεί ένα άλλο παραμετρικό interface τότε μπορούμε να πούμε ότι τα δύο interfaces διατηρούν την σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. Για παράδειγμα, | Οι σχέσεις κληρονομικότητας μεταξύ παραμετρικών τύπων μπορούν να οριστούν ως εξής. Αν ένα παραμετρικό interface κληρονομεί ένα άλλο παραμετρικό interface τότε μπορούμε να πούμε ότι τα δύο interfaces διατηρούν την σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. Για παράδειγμα, | ||
| <code java> | <code java> | ||
| - | Collection< | + | Collection< |
| | | | | ||
| v π.χ. | v π.χ. | ||
| Line 29: | Line 30: | ||
| Αντίστοιχα, | Αντίστοιχα, | ||
| <code java> | <code java> | ||
| - | HashSet< | + | HashSet< |
| | | Χ | | | Χ | ||
| v π.χ. | v π.χ. | ||
| Line 37: | Line 38: | ||
| Τέλος, αν μία παραμετρική κλάση υλοποιεί ένα παραμετρικό interface τότε μπορούμε να πούμε ότι το interface και η κλάση διατηρούν σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. | Τέλος, αν μία παραμετρική κλάση υλοποιεί ένα παραμετρικό interface τότε μπορούμε να πούμε ότι το interface και η κλάση διατηρούν σχέση κληρονομικότητας ΜΟΝΟ αν ο παραμετρικός τύπος που χρησιμοποιούν είναι κοινός. | ||
| <code java> | <code java> | ||
| - | List< | + | List< |
| | | | | ||
| v v V | v v V | ||
| ArrayList< | ArrayList< | ||
| </ | </ | ||
| + | |||
| + | |Προηγούμενο: | ||