Ejemplo clases Abstractas

package com.trifulcas.clases;


// Una clase abstracta no se puede instanciar
// Puede tener propiedades y métodos no abstractos
// Puede tener métodos abstractos
abstract public class Figura {
	private String nombre;
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getNombre() {
		return nombre;
	}
	// Puede tener métodos abstractos
	// Un contrato para que las clases derivadas implementen el método
	// Los métodos abstractos no incorporan código
	abstract public double area();

}

class Cuadrado extends Figura{
	private int lado;

	public Cuadrado(int lado) {
		super();
		this.lado = lado;
		setNombre("cuadrado");
	}

	@Override
	public double area() {
		
		return lado*lado;
	}
	
}
class Circulo extends Figura{
	private int radio;

	public Circulo(int radio) {
		super();
		this.radio = radio;
		setNombre("círculo");

	}

	@Override
	public double area() {
		return Math.PI*radio*radio;
	}
	
}

Uso:


Figura[] ejercicios= {new Cuadrado(2),new Circulo(3),new Cuadrado(4)};
		
		for(Figura f:ejercicios) {
			System.out.println(f.getNombre()+" | "+f.area());
		}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos