Παράδειγμα 13 - Η Κληρονομικότητα (Inheritance)

Μια τάξη που κληρονομεί χαρακτηριστικά από μια άλλη τάξη καλείται δευτερεύουσα τάξη (subclass) και η τάξη από την οποία κληρονομεί καλείται υπερτάξη (superclass). Για παράδειγμα, θα δημιουργήσουμε μια τάξη με όνομα mammal (θηλαστικό), η οποία θα έχει την ιδιότητα (attribute) name και την μέθοδο (method) sleep().
Μετά, χρησιμοποιώντας την λέξη κλειδί extends, θα δημιουργήσουμε μια νέα τάξη με όνομα cat, η οποία θα κληρονομεί όλα τα χαρακτηριστικά της τάξης mammal αλλά θα έχει και μια επιπλέον δική της μέθοδο με όνομα speak().
public class mammal { String name; public void sleep() { } } public class cat extends mammal { public void speak() { } }
Εχουμε τώρα μια δευτερεύουσα τάξη με όνομα cat της υπερτάξης mammal, όπου η τάξη cat έχει την ιδιότητα name και την μέθοδο sleep() που έχει κληρονομήσει από την υπερτάξη mammal καθώς και την δική της μέθοδο speak().
Ακολουθεί έναα παράδειγμα που δημιουργεί αντικείμενα από την παραπάνω τάξη cat και χρησιμοποιεί τα χαρακτηριστικά της.
class newcat { { cat catty = new cat(); catty.name = "Azor"; catty.speak(); catty.sleep(); } }
Η συμπεριφορά και οι ιδιότητες μιας τάξης αποτελούν τον συνδυασμό της δικής της συμπεριφοράς και ιδιοτήτων καθώς και της συμπεριφοράς και των ιδιοτήτων που έχει κληρονομήσει απ' όλες τις υπερτάξεις της. Δύο μέθοδοι μπορούν να έχουν το ίδιο όνομα αν έχουν διαφορετικό αριθμό ορισμάτων ή ορίσματα διαφορετικού τύπου.
Μέσα σε μια δευτερεύουσα τάξη μπορούμε να ξαναορίσουμε και να αντικαταστήσουμε έτσι μια μέθοδο που έχει ήδη οριστεί σε μια υπερτάξη. Αυτό αποκαλείται υπερκάλυψη (overriding) της μεθόδου.
- Λέξεις κλειδιά: