java:inheritance
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| java:inheritance [2021/03/05 15:31] – [Κληρονομικότητα] gthanos | java:inheritance [2022/03/11 05:21] (current) – gthanos | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| <code java BasicRectangle.java> | <code java BasicRectangle.java> | ||
| - | class BasicRectangle { | + | public |
| | | ||
| int width; | int width; | ||
| int height; | int height; | ||
| - | public | + | public |
| width = initWidth; | width = initWidth; | ||
| height = initHeight; | height = initHeight; | ||
| } | } | ||
| - | void setWidth(int newWidth ) { | + | |
| width = newWidth; | width = newWidth; | ||
| } | } | ||
| | | ||
| - | void setHeight(int newHeight ) { | + | |
| height = newHeight; | height = newHeight; | ||
| } | } | ||
| | | ||
| - | int getWidth() { | + | |
| return width; | return width; | ||
| } | } | ||
| | | ||
| - | int getHeight() { | + | |
| return height; | return height; | ||
| } | } | ||
| | | ||
| - | | + | |
| - | return width * height; | + | return |
| } | } | ||
| - | |||
| } | } | ||
| </ | </ | ||
| Line 67: | Line 66: | ||
| void setY(int yPos) { | void setY(int yPos) { | ||
| y = yPos; | y = yPos; | ||
| + | } | ||
| + | | ||
| + | public String toString() { | ||
| + | return " | ||
| } | } | ||
| } | } | ||
| Line 72: | Line 75: | ||
| <code java Rectangle.java> | <code java Rectangle.java> | ||
| - | class Rectangle extends BasicRectangle{ | + | public |
| | | ||
| Point origin; | Point origin; | ||
| Line 86: | Line 89: | ||
| } | } | ||
| | | ||
| - | void setOrigin(Point newOrigin) { | + | |
| origin = newOrigin; | origin = newOrigin; | ||
| } | } | ||
| | | ||
| - | Point getOrigin() { | + | |
| return origin; | return origin; | ||
| + | } | ||
| + | | ||
| + | int area() { | ||
| + | return width * height; | ||
| } | } | ||
| // Move rectangle origin by dx,dy | // Move rectangle origin by dx,dy | ||
| - | void moveOrigin(int dx, int dy) { | + | |
| origin.setX( origin.getX() + dx ); | origin.setX( origin.getX() + dx ); | ||
| origin.setY( origin.getY() + dy ); | origin.setY( origin.getY() + dy ); | ||
| + | } | ||
| + | | ||
| + | public String toString() { | ||
| + | String str = origin.toString() + " "; | ||
| + | str = str + super.toString(); | ||
| + | return str; | ||
| } | } | ||
| } | } | ||
| Line 107: | Line 120: | ||
| * Η κλάση // | * Η κλάση // | ||
| - | * Τα πεδία της κλάσης //Bicycle// είναι private. H πρόσβαση στα πεδία αυτά μπορεί να γίνει μόνο μέσω των public μεθόδων που διαθέτει η κλάση και έχοντας πρόσβαση απευθείας πάνω στα συγκεκριμένα πεδία. | ||
| * Βασικό χαρακτηριστικό της κληρονομικότητας είναι ότι η κληρονομούμενη κλάση έχει όλα τα χαρακτηριστικά της γονικής κλάσης. Υπό αυτή την έννοια, | * Βασικό χαρακτηριστικό της κληρονομικότητας είναι ότι η κληρονομούμενη κλάση έχει όλα τα χαρακτηριστικά της γονικής κλάσης. Υπό αυτή την έννοια, | ||
| + | * Παρατηρήστε τη δεσμευμένη λέξη //super// ως πρώτη εντολή του κάθε κατασκευαστή. Μέσω της κλήσης //super// καλείται ο κατασκευαστής της γονικής κλάσης. | ||
| </ | </ | ||
| ===== Προσβασιμότητα των κληρονομούμενων πεδίων ===== | ===== Προσβασιμότητα των κληρονομούμενων πεδίων ===== | ||
java/inheritance.1614958261.txt.gz · Last modified: 2021/03/05 15:31 (external edit)
