Salve a tutti sono capi_1992 e mi sto avvicinando da poco a Java e alla programmazione OO. Il problema a cui spero diate risposta è il seguente: da quanto ho capito Java ha scelto la filosofia dello static binding e fin qui tutto chiaro (almeno credo). Il fatto è che in questo progettino d'esempio mi sembra che ci sia dynamic e non static. Sono confuso :
.Il codice è il seguente:
Classe Main:
codice:
package it.unitn.prog2;
public class MySuperSweetPoint {
public static void main(String[] args) {
Point np = new NamedPoint(0, 0, "z");
System.out.println(np);
}
}
Classe Point:
codice:
package it.unitn.prog2;
public class Point {
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public void move(int dx, int dy) {
x += dx;
y += dy;
}
public String toString() {
return ("(" + x + ", " + y + ")");
}
}
Classe NamedPoint (IS-A Point):
codice:
package it.unitn.prog2;
public class NamedPoint extends Point {
String name;
public NamedPoint(int x, int y, String name) {
super(x, y);
this.name = name;
}
public String toString() {
return (name + "(" + x + ", " + y + ")");
}
}
OUTPUT:
z(0, 0)
Non dovrebbe essere (0, 0)??
Grazie in anticipo