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();
}
}
Lo copiaste del material de Java de Willis Polanco.
ResponderEliminarCitado de el libro Programador Certificado de Java 2 Curso practico 2ª Edición.
ResponderEliminarAutor Antonio Martin Sierra
ese material es de el libro Citado de el libro Programador Certificado de Java 2 Curso practico 2ª Edición.
ResponderEliminarAutor Antonio Martin Sierra
Qué importa si el código es copiado o no ... lo que importa es el tiempo dedicado a apoyar subiendo ejemplos al sitio.
ResponderEliminaryeah baby
ResponderEliminar