Está en la página 1de 14

Programacin Avanzada y Mtodos Numricos

Mecanismos de abstraccin: Parte 2


Clases y mtodos abstractos
Interfaces

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 1


Clases y mtodos abstractos 1
MECANISMOS DE ABSTRACCIN
Clases abstractas
Una clase con al menos un mtodo abstracto es una clase
abstracta.

Una subclase de una clase abstracta necesita proveer una


implementacin de todos los mtodos abstractos de la clase
padre, de lo contrario tambin ser una clase abstracta.

Una clase abstracta no puede ser instanciada.

Slo se declaran las firmas de los mtodos abstractos.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 3


Un mtodo esttico

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 4


Un mtodo esttico
Suponga la siguiente jerarqua de clases:

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 5


Un mtodo esttico
Las tres mquinas de la diapositiva anterior cuentan con un
mtodo en comn, el mtodo escribir(), sin embargo cada
uno de esos aparatos lo hacen de manera diferente:

Mquina de escribir: Utiliza un mecanismo totalmente mecnico

Mquina de escribir elctrica: El mecanismo es accionado con un


motor elctrico por lo que se requiere menor presin por parte del
operador

Computadora: Utiliza un sistema de seales elctricas que manda


interrupciones al procesador (scan code, break code). La rutina de
teclado de la BIOS traduce la seal recibida a cdigo ASCII.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 6


Un mtodo esttico
En el ejemplo, el proceso escribir es semnticamente el
mismo, sin embargo los pasos especficos para llevarlo a cabo
son diferentes en cada caso.

Por lo anterior, la clase MaquinaDeEscribir se asegura de que


todas sus subclases tengan la funcionalidad escribir(), pero
permite a cada una de ellas definir su propia lgica de
implementacin.

Se utiliza la palabra reservada asbtract para indicar que una


clase o un mtodo son abstractos.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 7


Creacin de una clase Si crea un mtodo abstracto, est forzando a todas las
subclases a sobreesribir ese mtodo.
abstracta
1. Debe haber al menos un
mtodo abstracto para que
la clase sea abstracta.

2. Si hay un mtodo
abstracto, la clase debe ser
declarada como abstracta.

3. Una clase abstracta puede


tener ms mtodos y
atributos, los cuales sern
utilizados por las clases
hijas.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 8


Interfaces 2
MECANISMOS DE ABSTRACCIN
Interfaces
Una interfaz es similar a una clase abstracta, sin embargo, las
interfaces slo pueden tener mtodos abstractos y atributos
final (constantes).

Los mtodos con implementacin no son permitidos en las


interfaces.

Una interfaz no puede ser usada como una clase padre.

Una clase implementa una interfaz al proveer cdigo para


cada mtodo declarado en la interfaz.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 10


Interfaces
Las interfaces son declaradas como las clases, pero en lugar
de usar la palabra reservada class, se usa la palabra
reservada interface.

Todos los mtodos de una interfaz son public y asbtract por


defecto, no es necesario incluir dichas palabras reservadas.

Para heredar de una clase usamos la palabra reservada


extends; pero para utilizar una interfaz se ocupa la palabra
reservada implements.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 11


Creacin e
implementacin de
una interfaz
1. Crear la interfaz con la
palabra reservada
interface.

2. Declarar las firmas de los


mtodos y las constantes
de la interfaz.

3. Implementar la interface
en otra clase a travs de la
palabra reservada
implements.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 12


Interfaces
Una diferencia importante entre clases e interfaces es que
una subclase slo puede heredar de una sola clase, sin
embargo una clase puede implementar ms de una interfaz.

Una clase que no implementa todos los mtodos de una


interfaz es una clase abstracta y debe ser declarada con la
palabra abstract.

Una interfaz tambin puede heredar de otra interfaz a travs


de la palabra reservada extends.

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 13


Prxima sesin
Aplicaciones basadas en texto
Flujos
Navegacin de Archivos y E/S
Archivos properties

2012-1 Eric Ulises Garca Cano Castillo - gcc@unica.unam.mx 14

También podría gustarte