This shows you the differences between two versions of the page.
java:generic_bounded_types [2015/03/15 21:09] gthanos |
java:generic_bounded_types [2016/02/26 11:15] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Κληρονομικότητα παραμετρικών τύπων δεδομένων ====== | ||
- | <code java> | ||
- | public void boxTest(Box<Number> n) { /* ... */ } //line 1 | ||
- | |||
- | Box<Number> box = new Box<Number>(); //line 3 | ||
- | box.add(new Integer(10)); //line 4 | ||
- | box.add(new Double(10.1)); //line 5 | ||
- | |||
- | Box<Double> doubleBox = new Box<Double>(); // line 7 | ||
- | doubleBox.add(new Double(10.1)); // line 8 | ||
- | |||
- | box.boxTest(doubleBox); // μπορούμε να γράψουμε? | ||
- | </code> | ||
- | Ο παραπάνω κώδικας είναι σωστός στις γραμμές 3-5 διότι οι κλάσεις ''Integer'' και ''Double'' είναι υποκλάσεις της κλάσης ''Number''. Δεν ισχύει όμως το ίδιο για την γραμμή 8 καθώς η κλάση ''Box<Double>'' δεν είναι υποκλάση της κλάσης ''Box<Number>'', όπως δείχνει το παρακάτω σχήμα. | ||
- | {{ :java:generics_inheritance1.png?300|300 }} |