2 Clases Abstractas e Interfaces

Páginas: 5 (1230 palabras) Publicado: 10 de marzo de 2015
Clases abstractas e interfaces
™ A nivel conceptual, las clases abstractas e interfaces
permiten definir qué puede hacer un conjunto o familia de
clases relacionadas.
™ Ejemplo en el contexto de la universidad:

Java: Clases Abstractas e Interfaces

Las “personas” (esto es,
“alumnos”, “profesores” y
“administrativos”)
conocen y retornan su
RUT, nombre, teléfono y
dirección

Persona

Franco GuidiPolanco
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
fguidi@ucv.cl

Alumno

Profesor

Administrativo

Actualización: 8 de marzo de 2006
Franco Guidi Polanco

Clases Abstractas

2

Ejemplo de Clase Abstracta

™ Una clase es declarada abstracta cuando no
es posible crear instancias de ella.
™ Una clase debe ser declarada abstracta si
posee al menos un métododeclarado
abstracto.
™ Un método abstracto es aquél que no provee
implementación.

public abstract class Poligono {
int lados;
public int setLados(int l){
lados = l;
}
public abstract double getArea();
...
}

Pablo Picasso, Toro (11)

™ Una subclase de una clase abstracta
puede ser instanciada (es decir, puede
ser “no abstracta”) sólo si provee
implementación para todos los
métodos abstractos dela superclase.
En caso contrario, debe también ser
declarada abstracta.

Franco Guidi Polanco

07-03-2007

07-03-2007

public class Cuadrado extends Poligono {
int longitud;
public double getArea(){
return longitud*longitud;
}
...
}
3

Franco Guidi Polanco

07-03-2007

Clase abstracta

Polígono

Clase concreta
que extiende la
clase abstracta.

4

Interfaces

Analogía

™ Una interfaz define un tipode dato.
™ Contenido de una interfaz:
ƒ Nombre y visibilidad
ƒ Eventuales otras interfaces
extendidas
ƒ Declaraciones de métodos
ƒ Constantes (declaradas como
static final)

Destornillador

Modelos de cabezas
De tornillos

™ Una interfaz no provee:
ƒ Variables de instancia o de clase
ƒ Implementación para los métodos

™ Útiles cuando una clase debe usar objetos de distintas clases, pero queoperan de la misma forma (ej. un temporizador para videograbador,
radio, etc.)

Franco Guidi Polanco

07-03-2007

public class Persona implements Despertable{
int estado = DESPIERTO;
public void dormir() {
estado = Despertable.DORMIDO;
}
public void despierta(){
estado = DESPIERTO;
}
...
}
Franco Guidi Polanco

07-03-2007

Interfaces

Clases que implementan
alguna de las interfaces

Tornillos

5Ejemplo de Interfaz
public interface Despertable {
public static final int DORMIDO = 1;
public static final int DESPIERTO = 2;
public void despierta();
}

Clase que debe usar ciertos
objetos

Franco Guidi Polanco

07-03-2007

6

Ejemplo de Interfaz (cont.)
La interfaz
Despertable

public class Alarma {
...
public static void despertar(Despertable d);
d.despierta();
}
}

Una clase que
implementa lainterfaz
Despertable

public class Ejemplo {
public static void main(String[] arg){
Persona p1 = new Persona();
Alarma.despertar(p1);
Despertable p2 = new Persona();
Alarma.despertar(p2);
}
}
7

Franco Guidi Polanco

07-03-2007

La Alarma es
capaz de “despertar”
cualquier objeto
que implemente la
interfaz
Despertable.

8

Uso de Interfaces

Interfaces y excepciones

™ Una clase puede implementarmúltiples interfaces:

™Las excepiones declaradas en los métodos de una
interfaz (cláusula throws) también deben ser
declaradas en los métodos de las clases que
implementan la interfaz.

public class Anfibio implements Terrestre, Acuático { ... }

™ Una interfaz puede extender otras interfaces.
public interface Anfibio extends Terrestre, Acuático { ... }

™ Algunos enuncian que el uso de interfacesrepresenta una
forma de enfrentar el problema de la “herencia múltiple” en
Java.

Franco Guidi Polanco

07-03-2007

9

Ejemplo

Franco Guidi Polanco

07-03-2007

10

Ejemplo (cont.)
™ Clase que accede a las funciones del Aerosub:

™ El Aerosub (“Viaje al fondo del mar”)

public class Comandante {
public Aerosub vehículo;

public interface Aéreo {
public void despegar();
public void acuatizar();
}...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • POO: Interfaces y clases abstractas
  • Polimorfismo clases abstractas e interfaces
  • Clases Abstractas E Interfaces
  • Interfaces y clases abstractas
  • Clase abstracta interface y clase base
  • Clases abstractas e interfaces (Programación Java)
  • clase interface
  • clases abstractas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS