visita

Páginas: 5 (1081 palabras) Publicado: 8 de agosto de 2014
Clases abstractas
Clases abstractas e interfaces

Clases cuya descripción es incompleta. Una
clase abstracta declara métodos, pero no
tiene que implementarlos.
n

n

Java

Arrays y Cadenas

1

Clases abstractas

dibuja
setColor
...

public class Circle extends Forma{
private int radio;
// ...
public void dibuja(){ /*...*/ };
public void setRadio(int){/*...*/};
}Otras
Circulo

Rectangulo
altura
anchura
...

setRadio
...

public class Rectangle extends Forma{
private int altura, anchura;
// ...
public void dibuja(){ /*...*/ };
public void setAltura(int){/*...*/};
}

setAltura
...

Java

Arrays y Cadenas

3

Clases abstractas
n

n

n
n

2

Arrays y Cadenas

Java

los métodos
abstactos no
tienen
cuerpo
dibuja uncírculo

dibuja un
rectángulo

Arrays y Cadenas

4

Ejemplo clase abstracta

Las subclases de una clase abstracta deben:
w Sobreescribir todos los métodos abstractos de
la superclase, o bien
w Ser declaradas como clases abstractas
Una clase abstracta no puede instanciarse
w No se pueden crear objetos de una clase
abstracta
Una clase abstracta puede incluir variables y
métodos noabstractos.
No se pueden definir constructores abstractos o
métodos estáticos abstractos.

Java

Arrays y Cadenas

public abstract class Forma {
private int xpos, ypos;
private Color color;
// ...
public abstract void dibuja();
public void setColor(Color c){ /*...*/ };
}

xpos
ypos
color
...

radio
...

Java

Clases abstractas
{abstract}

Forma

No proporcionan laimplementación de todos sus
métodos
w Los métodos no implementados se declaran
como abstract
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étodo
abstracto

5

public abstract class Figura {
int x, y;
public void mostrarOrigen () {
System.out.println("x= "+x+" y= "+y);}
public abstract doublearea(); // No tiene implementación
Triangulo
public abstract double mostrarNombre ();
Cuadrado }
public class Triangulo extends Figura {
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 {
protectedint lado ;
public Cuadrado (int lado) { this.lado =lado; }
public double area() { return lado*lado; }
public void mostrarNombre () { System.out.println(“cuadrado”);}}

Figura

Java

Arrays y Cadenas

6

1

Prueba clase abstracta

Interfaces

public class PruebaClaseAbstracta {
public class PruebaClaseAbstracta {
public static void main(String args[]) {
public static voidmain(String args[]) {
Figura fig;
Figura fig;
Triangulo tri;
Triangulo tri;
Cuadrado cua;
Cuadrado cua;

Sólo declaran comportamiento
n
n

fig = new Figura(); // error no se puede
fig = new Figura(); // error no se puede
//instanciar una clase abstracta
//instanciar una clase abstracta
tri = new Triangulo(4,3);
tri = new Triangulo(4,3);
tri.mostrarOrigen ();
tri.mostrarOrigen ();tri.mostrarNombre ();
tri.mostrarNombre ();

w No implementan el comportamiento
n

fig = tri ;
fig = tri ;
fig.mostrarNombre ();
fig.mostrarNombre ();
System.out.println("Area triangulo: "+fig .area());
System.out.println("Area triangulo: "+fig .area());

}
}

Se utiliza la palabra clave interface
Por defecto todos sus métodos son
públicos y abstractos
Por defecto todos susatributos son
públicos, constantes y de clase
w Por legibilidad normalmente los declaramos

static y final

cua = new Cuadrado(5);
cua = new Cuadrado(5);
fig = cua ;
fig = cua ;
System.out.println("Area cuadrado: "+fig.area());
System.out.println("Area cuadrado: "+fig.area());
Java
Arrays y Cadenas
7

Java

Arrays y Cadenas

8

}
}

Interfaces

Declaración de interfaces...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Visita
  • El visitante
  • Visitas
  • Su Visita
  • VISITA
  • la visita
  • el visitante
  • El Visitador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS