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