java:inheritance

Differences

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

Link to this comparison view

Next revision Both sides next revision
java:inheritance [2015/02/13 12:17]
gthanos created
java:inheritance [2015/02/13 12:42]
gthanos
Line 1: Line 1:
 ====== Κληρονομικότητα ====== ====== Κληρονομικότητα ======
  
-Σε προηγούμενη παράγραφο,​ αναφερόμενοι στην κλάση [[:​java:​class:Κληρονομικότητα Κλάσης | έγινε ​αναφορά ​και ​στην κληρονομικότητα κλάσεων]] στην Java. +Σε προηγούμενη παράγραφο,​ αναφερόμενοι στην κλάση ​έγινε ​[[:​java:​class#Κληρονομικότητα Κλάσης | αναφορά στην κληρονομικότητα κλάσεων]] στην Java. Κάθε κλάση που κληρονομεί από μία άλλη κλάση ονομάζεται υποκλάση (//​subclass//​) της γονικής κλάσης από την οποία κληρονομεί. Αντίστοιχα,​ η γονική κλάση ονομάζεται υπερκλάση (//​superclass//​) της κληρονομούμενης κλάσης.
  
 +{{  :​java:​super_sub_class.jpg ​ | }}
 +
 +
 +Όπως φαίνεται και στο παραπάνω σχήμα μία κλάση (//​subclass//​) μπορεί να κληρονομεί __**ΜΟΝΟ ΜΙΑ**__ άλλη κλάση. Αντίστροφα μία κλάση (//​superclass//​) μπορεί να κληρονομεί πολλές διαφορετικές κλάσεις. Παρακάτω δίνουμε το παράδειγμα κληρονομικότητας που παρουσιάσαμε νωρίτερα ελαφρά παραλλαγμένο.
 +
 +<code java Bicycle.java>​
 +public class Bicycle {
 +        ​
 +    private int cadence;
 +    private int gear;
 +    private int speed;
 +       
 +    public Bicycle(int startCadence,​ int startSpeed, int startGear) {
 +        gear = startGear;
 +        cadence = startCadence;​
 +        speed = startSpeed;
 +    }
 +    ​
 +    public int getCadence() {
 +          return cadence;
 +    }
 +    ​
 +    public int getGear() {
 +          return gear;
 +    }
 +    ​
 +    public int getSpeed() {
 +          return speed;
 +    }
 +
 +    public void setCadence(int newValue) {
 +        cadence = newValue;
 +    }
 +        ​
 +    public void setGear(int newValue) {
 +        gear = newValue;
 +    }
 +        ​
 +    public void applyBrake(int decrement) {
 +        speed -= decrement;
 +    }
 +        ​
 +    public void speedUp(int increment) {
 +        speed += increment;
 +    }
 +        ​
 +}
 +</​code>​
 +
 +<code java MountainBike.java>​
 +public class MountainBike extends Bicycle {
 +
 +    private int seatHeight;
 +
 +    // the MountainBike subclass has
 +    // one constructor
 +    public MountainBike(int startHeight,​ int startCadence,​
 +                        int startSpeed, int startGear) {
 +        super(startCadence,​ startSpeed, startGear);
 +        seatHeight = startHeight;​
 +    }   
 +        ​
 +    // the MountainBike subclass has
 +    // one method
 +    public void setHeight(int newValue) {
 +        seatHeight = newValue;
 +    }
 +    ​
 +    public int getSeatHeight() {
 +        return seatHeight;
 +    }
 +}
 +</​code>​
java/inheritance.txt · Last modified: 2016/03/31 08:25 by doufexi