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:inheritance [2015/02/13 13:01] gthanos |
java:inheritance [2015/02/13 13:39] gthanos |
||
---|---|---|---|
Line 5: | Line 5: | ||
{{ :java:super_sub_class.jpg | }} | {{ :java:super_sub_class.jpg | }} | ||
+ | <WRAP tip> | ||
+ | ΌΛΕΣ οι κλάσεις στην Java κληρονομούν την βασική κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html | Object]]. Για παράδειγμα, η κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/String.html| String]] κληρονομεί την κλάση Object. Την κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html | Object]] θα την αναλύσουμε στη συνέχεια. | ||
+ | </WRAP> | ||
Όπως φαίνεται και στο παραπάνω σχήμα μία κλάση (//subclass//) μπορεί να κληρονομεί __**ΜΟΝΟ ΜΙΑ**__ άλλη κλάση. Αντίστροφα μία κλάση (//superclass//) μπορεί να κληρονομεί πολλές διαφορετικές κλάσεις. Παρακάτω δίνουμε το παράδειγμα κληρονομικότητας που παρουσιάσαμε νωρίτερα ελαφρά παραλλαγμένο. | Όπως φαίνεται και στο παραπάνω σχήμα μία κλάση (//subclass//) μπορεί να κληρονομεί __**ΜΟΝΟ ΜΙΑ**__ άλλη κλάση. Αντίστροφα μία κλάση (//superclass//) μπορεί να κληρονομεί πολλές διαφορετικές κλάσεις. Παρακάτω δίνουμε το παράδειγμα κληρονομικότητας που παρουσιάσαμε νωρίτερα ελαφρά παραλλαγμένο. | ||
Line 96: | Line 99: | ||
* Μπορούμε να γράψουμε νέες μεθόδους που έχουν το ίδιο //signature// (ίδιο όνομα, ίδιο αριθμό και ίδιο τύπο ορισμάτων), ώστε να επαναορίσουμε (//override//) τις μεθόδους αυτές στην υποκλάση. Η πρακτική αυτή είναι συνήθης. | * Μπορούμε να γράψουμε νέες μεθόδους που έχουν το ίδιο //signature// (ίδιο όνομα, ίδιο αριθμό και ίδιο τύπο ορισμάτων), ώστε να επαναορίσουμε (//override//) τις μεθόδους αυτές στην υποκλάση. Η πρακτική αυτή είναι συνήθης. | ||
* Μπορούμε να γράψουμε νέες στατικές (//static//) μεθόδους που έχουν το ίδιο //signature//, ώστε να επαναορίσουμε (//override//) τις μεθόδους αυτές στην υποκλάση. Επαναορίζοντας στατικές μεθόδους, κρύβουμε τις αντίστοιχες μεθόδους της γονικής κλάσης. | * Μπορούμε να γράψουμε νέες στατικές (//static//) μεθόδους που έχουν το ίδιο //signature//, ώστε να επαναορίσουμε (//override//) τις μεθόδους αυτές στην υποκλάση. Επαναορίζοντας στατικές μεθόδους, κρύβουμε τις αντίστοιχες μεθόδους της γονικής κλάσης. | ||
- | * | + | * Μπορούμε να γράψουμε κατασκευαστές της υποκλάσης που χρησιμοποιούν κατασκευαστές της γονικής κλάσης. |
+ | |||
+ | ===== Implicit και Explicit Casting of Objects ===== | ||
+ | |||
+ | |||