Ejemplo

 

public abstract class Punto {

 

    public abstract double getX();

 

    public abstract double getY();

 

    public abstract double getModulo();

 

    public abstract double getAngulo();

 

    public double distancia(Punto p) {

        double dx = getX() - p.getX();

        double dx2 = dx * dx;

 

        double dy = getY() - p.getY();

        double dy2 = dy * dy;

 

        return Math.sqrt(dx2 + dy2);

    }

}

 

public class PuntoC extends Punto {

    private double x;

    private double y;

 

    public double getX() { return x; }

 

    public double getY() { return y; }

 

    public double getModulo() { return Math.sqrt(x * x + y * y); }

 

    public double getAngulo() { return Math.atan2(y, x); }

          

    public PuntoC(double x, double y) {

       this.x= x;

       this.y= y;

    }      

 

    public String toString() {

        return "cartesianas: " + x + ", " + y;

    }

}

 

public class PuntoP extends Punto {

    private double m;

    private double a;

 

    public double getX() { return m * Math.cos(a); }

 

    public double getY() { return m * Math.sin(a); }

 

    public double getModulo() { return m; }

 

    public double getAngulo() { return a; }

               

    public PuntoP(double m, double a) {

        this.m = m;

        this.a = a;

    }      

 

    public String toString() {

        return "polares: " + m + ", " + a;

    }

}                 

 

Temas relacionados

1. abstract (palabra reservada)