package com.trifulcas.figuras;
public abstract class Figura {
private String nombre;
public abstract void dibujar();
protected String getNombre() {
return nombre;
}
protected void setNombre(String nombre) {
this.nombre = nombre;
}
}
package com.trifulcas.figuras;
public abstract class Figura2D extends Figura {
public abstract double area();
}
package com.trifulcas.figuras;
public abstract class Figura3D extends Figura2D{
public abstract double volumen();
}
package com.trifulcas.figuras;
public class Cuadrado extends Figura2D {
private double lado;
protected double getLado() {
return lado;
}
protected void setLado(double lado) {
this.lado = lado;
}
public Cuadrado(double lado) {
this.lado=lado;
}
@Override
public double area() {
// TODO Auto-generated method stub
return lado*lado;
}
@Override
public void dibujar() {
System.out.println("Cuadrado");
}
}
package com.trifulcas.figuras;
public class Circulo extends Figura2D {
private double radio;
protected double getRadio() {
return radio;
}
protected void setRadio(double radio) {
this.radio = radio;
}
public Circulo(double radio) {
this.radio = radio;
}
@Override
public double area() {
return Math.PI*radio*radio;
}
@Override
public void dibujar() {
System.out.println("Círculo");
}
}
package com.trifulcas.figuras;
public class Cubo extends Figura3D {
private double lado;
protected double getLado() {
return lado;
}
protected void setLado(double lado) {
this.lado = lado;
}
public Cubo(double lado) {
this.lado = lado;
}
@Override
public double volumen() {
return Math.pow(lado, 3);
}
@Override
public double area() {
// Se puede hacer más sencillo pero así también
// Ojo que acoplamos cubo a cuadrado
Cuadrado c=new Cuadrado(lado);
return c.area() * 6;
}
@Override
public void dibujar() {
System.out.println("Cubo");
}
}
package com.trifulcas.figuras;
public class Esfera extends Figura3D {
private double radio;
protected double getRadio() {
return radio;
}
protected void setRadio(double radio) {
this.radio = radio;
}
public Esfera(double radio) {
this.radio = radio;
}
@Override
public double volumen() {
return 4/3*Math.PI*Math.pow(radio, 3);
}
@Override
public double area() {
return 4*Math.PI*Math.pow(radio, 2);
}
@Override
public void dibujar() {
// TODO Auto-generated method stub
}
}
Cuadrado c=new Cuadrado(2);
System.out.println(c.area());
Circulo ci=new Circulo(1);
System.out.println(ci.area());
Cubo cu=new Cubo(2);
System.out.println(cu.area());
System.out.println(cu.volumen());
Esfera e=new Esfera(1);
System.out.println(e.area());
System.out.println(e.volumen());