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:this_operator [2015/01/22 09:09] gthanos [Ο τελεστής super] |
java:this_operator [2015/01/22 09:14] gthanos [Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της γονικής κλάσης μέσω του τελεστή super] |
||
---|---|---|---|
Line 94: | Line 94: | ||
Σε αναλογία με τον τελεστή **this**, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης. Προϋπόθεση για την χρήση του τελεστή **super** είναι να υφίσταται γονική κλάση μέσω της διαδικασίας της κληρονομικότητας. | Σε αναλογία με τον τελεστή **this**, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης. Προϋπόθεση για την χρήση του τελεστή **super** είναι να υφίσταται γονική κλάση μέσω της διαδικασίας της κληρονομικότητας. | ||
- | ==== Πρόσβαση στους κατασκευαστές της γονικής κλάσης μέσω του τελεστή this ==== | + | ==== Πρόσβαση στους κατασκευαστές της γονικής κλάσης μέσω του τελεστή super ==== |
Λαμβάνοντας κώδικα από το προηγούμενο παράδειγμα του ποδηλάτου έχουμε τα εξής: | Λαμβάνοντας κώδικα από το προηγούμενο παράδειγμα του ποδηλάτου έχουμε τα εξής: | ||
Line 123: | Line 123: | ||
H χρήση του τελεστή super χρησιμοποιείται για να προσπελάσει τον κατασκευαστή της γονικής κλάσης και να αρχικοποιήσει τις μεταβλητές που ανήκουν στην κλάση αυτή. | H χρήση του τελεστή super χρησιμοποιείται για να προσπελάσει τον κατασκευαστή της γονικής κλάσης και να αρχικοποιήσει τις μεταβλητές που ανήκουν στην κλάση αυτή. | ||
+ | |||
+ | ==== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της γονικής κλάσης μέσω του τελεστή super ==== | ||
+ | |||
+ | <code java Bicycle.java> | ||
+ | public class Bicycle { | ||
+ | |||
+ | // the Bicycle class has | ||
+ | // three fields | ||
+ | public int cadence; | ||
+ | public int gear; | ||
+ | public int speed; | ||
+ | |||
+ | // the Bicycle class has | ||
+ | // one constructor | ||
+ | public Bicycle(int startCadence, int startSpeed, int startGear) { | ||
+ | gear = startGear; | ||
+ | cadence = startCadence; | ||
+ | speed = startSpeed; | ||
+ | } | ||
+ | |||
+ | // the Bicycle class has | ||
+ | // four methods | ||
+ | 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> | ||
+ | |||
+ | Ο κατασκευαστής της κλάσης ''MountainBike'' θα μπορούσε να γραφεί ως εξής. | ||
+ | |||
+ | <code java MountainBike.java> | ||
+ | public class MountainBike extends Bicycle { | ||
+ | |||
+ | // the MountainBike subclass has | ||
+ | // one field | ||
+ | public int seatHeight; | ||
+ | |||
+ | // the MountainBike subclass has | ||
+ | // one constructor | ||
+ | public MountainBike(int startHeight, int startCadence, | ||
+ | int startSpeed, int startGear) { | ||
+ | super(startCadence, startSpeed, startGear); | ||
+ | super.cadence = startCadence; | ||
+ | super.speed = startSpeed; | ||
+ | super.gear = startGear; | ||
+ | seatHeight = startHeight; | ||
+ | } | ||
+ | |||
+ | // the MountainBike subclass has | ||
+ | // one method | ||
+ | public void setHeight(int newValue) { | ||
+ | seatHeight = newValue; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||