abiep

Páginas: 8 (1993 palabras) Publicado: 8 de noviembre de 2013
Clases abstractas Clases cuya descripción es incompleta. Una clase abstracta declara métodos, pero no tiene que implementarlos. n No proporcionan la implementación de todos sus métodos
W Los métodos no implementados se declaran como abstract n Una clase con un método abstracto debe declararse como clase abstracta W Pero una clase puede declararse como abstracta aunque no tenga ningún métodoabstracto.

Clases abstractas
Otras {abstract}
Forma
xpos
ypos
color
...
dibuja
setColor
...
Circulo
radio
...
setRadio
...
Rectangulo
altura
anchura
...
setAltura
Clasesabstractas
public abstract class Forma {
private int xpos, ypos;
private Color color;
// ...
public abstract void dibuja();
public void setColor(Color c){ /*...*/ };
}
public class Circle extends Forma{
private int radio;
// ...
public void dibuja(){ /*...*/ };
public void setRadio(int){/*...*/};
}
dibuja un
círculo
public class Rectangle extends Forma{
private int altura,anchura;
// ...
public void dibuja(){ /*...*/ };
public void setAltura(int){/*...*/};
}
Clases abstractas
n Las subclases de una clase abstracta deben:
wSobreescribir todos los métodos abstractos de
la superclase, o bien
wSer declaradas como clases abstractas
n Una clase abstracta no puede instanciarse
wNo se pueden crear objetos de una clase
abstracta
n Una clase abstracta puedeincluir variables y métodos no abstractos.
n No se pueden definir constructores abstractos o métodos estáticos abstractos.

Ejemplo clase abstracta
public abstract class Figura {
intx, y;
public void mostrarOrigen() {
System.out.println("x= "+x+" y= "+y);}
public abstract double area(); // No tiene implementación
public abstract double mostrarNombre();
}
public class Triangulo extendsFigura {
protected int base, altura;
public Triangulo (int ba, int al) { base=ba; altura=al; }
public double area() { return base*altura/2; }
public void mostrarNombre() { System.out.println(“triangulo”); }
}
public class Cuadrado extends Figura {
protected int lado;
public Cuadrado (int lado) { this.lado=lado; }
public double area() { return lado*lado; }
public void mostrarNombre() {System.out.println(“cuadrado”);}}

Declaración e implementación de métodos abstractos
Siguiendo con el ejemplo del apartado anterior, se puede escribir:
abstract class FiguraGeometrica {
    . . .
    abstract void dibujar();
    . . .
}

class Circulo extends FiguraGeometrica {
    . . .
    void dibujar() {
        // codigo para dibujar Circulo
        . . .
    }


La claseabstracta se declara simplemente con el modificador abstract en su declaración. Los métodos abstractos se declaran también con el mismo modificador, declarando el método pero sin implementarlo (sin el bloque de código encerrado entre {}). La clase derivada se declara e implementa de forma normal, como cualquier otra. Sin embargo si no declara e implementa los métodos abstractos de la clase base (enel ejemplo el método dibujar) el compilador genera un error indicando que no se han implementado todos los métodos abstractos y que, o bien, se implementan, o bien se declara la clase abstracta. 

Las clases abstractas en Java
Una de las características más útiles de cualquier lenguaje orientado a objetos es la posibilidad de declarar clases que definen como se utiliza solamente, sin tener queimplementar método. Esto en Java se hace mediante interfaces y con clases abstractas.
Una clase abstracta es una clase de la que no se puede crear objetos. La utilidad de estas clases estriba en que otras clases hereden de ésta, por lo que con ello conseguiremos reutilizar código. Para declarar una clase como abstracta utilizamos la palabra clave abstract.
En método abstract no pude ser...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS