--------------------------------------- class Figura { public void stampaArea() { System.out.println(area()); } } class Punto extends Figura { ... public double area() {return 0;} ... } class Cerchio extends Figura { ... public double area() { ... } ... } class Quadrato extends Figura { ... public double area() { ... } ... } --------------------------------------- ./Figura.java:2: Method area() not found in class Figura. public void stampaArea() { System.out.println(area());} ^ 1 error --------------------------------------- abstract class Figura { abstract double area (); public void stampaArea() { System.out.println(area()); } } --------------------------------------- class ProvaFigura1 { public static void main (String[] args) { Figura[] f = new Figura[3]; f[0] = new Punto(1,1); f[1] = new Cerchio(1,2,3); f[2] = new Quadrato(3,0,2,1); for (int i = 0; i < 3; i++) System.out.println(f[i].area()); } } --------------------------------------- class B extends A1, A2 { ... } --------------------------------------- interface Scalabile { public void riduci (int scala); } abstract class Figura { ...//tutto come prima... } class Punto extends Figura { ...//tutto come prima... } class Cerchio extends Figura implements Scalabile { ...//tutto come prima... public void riduci (int scala) { raggio = raggio * scala / 100; } } class Quadrato extends Figura implements Scalabile { ...//tutto come prima... public void riduci (int scala) { double lato; Punto b = new Punto(getBassoDx().getX(), getBassoDx().getY()); lato = getBassoDx().getX() - getAltoSx().getX(); b.setX(getAltoSx().getX() + (lato * scala) / 100); b.setY(getAltoSx().getY() - (lato * scala) / 100); setBassoDx(b); } } --------------------------------------- Scalabile[] s = new Scalabile[3]; --------------------------------------- interface A { public static final int TEMPERATURA_MASSIMA = -50; public static final int ZERO_ASSOLUTO = -273; public static final int SOGLIA_TEMPERATURA_PERICOLOSA = -100; } class Cliente implements A { ... if (temperatura > SOGLIA_TEMPERATURA_PERICOLOSA) ... } --------------------------------------- interface Cloneable { } --------------------------------------- ... if (x instanceof Cloneable) { ... operazioni di duplicazione ... } else System.out.println("Non clonabile");