jueves, 13 de marzo de 2014

Clase Abstracta en Java

CLASE ABSTRACTA EN JAVA

Una clase abstracta es una clase en la que alguno de sus métodos esta declarado pero no esta definido, es decir, se especifica su nombre, parámetros y tipo de devolución pero no incluye código, A este tipo de métodos se les conoce como método abstractos.
Un método se define como abstracto porque en ese momento no se conoce como ha de ser su implementación;  serán las subclases de la clase abstracta responsables de darle “cuerpo” mediante la sobre escritura del mismo.
Sintaxis de la Clase Abstractactan                

Public abstract class nombre_clase
{
Public abtract tipo nombre_metodo(argumentos);
// otros métodos
}

Citado de el libro Programador Certificado de Java 2 Curso practico 2ª Edición.
Autor Antonio Martin Sierra

Diagrama de Clase Abstracta (Ejemplo Figura Geométricas)




Código Fuente Java


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Figura.Java (Clase Abstracta)

public abstract class Figura {
    
    double area;
    
    abstract public double CalcularArea();
    
    
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Circulo.java (Heredan de la Clase abstacta)

ublic class Circulo extends Figura{
    
    final double pi=3.1416;
    private double radio;

    @Override
    public double CalcularArea() {
        
        return this.area=pi*radio*radio;
     }

    public double getRadio() {
        return radio;
    }

    public void setRadio(double radio) {
        this.radio = radio;
    }
}



///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Triangulo.java (Heredan de la Clase abstacta)

public class Triangulo extends Figura{
    
    private double base;
    private double altura;

    @Override
    public double CalcularArea() {
        
        return this.area=(base*altura)/2;
     }

    public double getBase() {
        return base;
    }

    public void setBase(double base) {
        this.base = base;
    }

    public double getAltura() {
        return altura;
    }

    public void setAltura(double altura) {
        this.altura = altura;
    }
   
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Rectangulo.java (Heredan de la Clase abstacta)

public class Rectangulo extends Figura{
    
    private double base;
    private double altura;

    @Override
    public double CalcularArea() {
        
        return this.area=(base*altura);
     }

    public double getBase() {
        return base;
    }

    public void setBase(double base) {
        this.base = base;
    }

    public double getAltura() {
        return altura;
    }

    public void setAltura(double altura) {
        this.altura = altura;
    }
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Main.java (Creación de los objetos)

import clases.Circulo;
import clases.Figura;
import clases.Rectangulo;
import clases.Triangulo;

public class Main {

    public static void main(String[] args) {
        // TODO code application logic here
        
        Circulo circulo = new Circulo();
        
        
        System.out.println("Area del circulo "+calcularArea(circulo));
      
        
        Rectangulo rectangulo = new Rectangulo();
        Triangulo triangulo = new Triangulo();
        circulo.setRadio(44.55);
        System.out.println("Area del circulo "+calcularArea(circulo));
         rectangulo.setBase(30);
        rectangulo.setAltura(40);
        System.out.println("Area del rectangulo "+calcularArea(rectangulo));
        triangulo.setBase(50);
        triangulo.setAltura(60);
        System.out.println("Area del Triangulo "+calcularArea(triangulo));
       }
    
    public static double calcularArea(Figura f){ // polimorfismo
        
        return f.CalcularArea();
    }
}





5 comentarios:

  1. Lo copiaste del material de Java de Willis Polanco.

    ResponderEliminar
  2. Citado de el libro Programador Certificado de Java 2 Curso practico 2ª Edición.
    Autor Antonio Martin Sierra

    ResponderEliminar
  3. ese material es de el libro Citado de el libro Programador Certificado de Java 2 Curso practico 2ª Edición.
    Autor Antonio Martin Sierra

    ResponderEliminar
  4. Qué importa si el código es copiado o no ... lo que importa es el tiempo dedicado a apoyar subiendo ejemplos al sitio.

    ResponderEliminar