2 3 3 Interfaces

3,048 views

Published on

1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
3,048
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
57
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

2 3 3 Interfaces

  1. 1. 2_3_3 Interfaces Apoyo SSD3
  2. 2. Introducción <ul><li>En Java, una interfaz define un conjunto de métodos abstractos; algunas interfaces incluyen también declaraciones de constantes </li></ul>
  3. 3. Diferencias entre clases abstractas e interfaces <ul><li>Una clase abstracta puede definir variables de instancia, mientras que una interfaz no puede hacerlo. </li></ul><ul><li>Una clase abstracta puede implementar métodos, mientras que una interfaz no puede hacerlo. </li></ul><ul><li>Las interfaces no contienen constructores. </li></ul><ul><li>Si una clase hereda de una clase abstracta, ésta no puede heredar de otra clase; si una clase implementa una interfaz, tiene la libertad de heredar de otra clase e implementar muchas otras interfaces </li></ul>
  4. 4. Cuando se usa una clase abstracta <ul><li>Una clase abstracta debe ser utilizada cuando algunos detalles en la implementación, como las variables y definiciones de métodos, son comunes para todas las clases en una jerarquía. </li></ul>
  5. 5. Cuando se usa una interfaz <ul><li>Una interfaz debe ser utilizada para definir un comportamiento que debe ser implementado por clases de diferentes jerarquías. </li></ul><ul><li>Las interfaces son el medio por el cual las clases que no están relacionadas pueden hacer uso del poder del polimorfismo debido a que una interfaz—como una clase—define un tipo. </li></ul><ul><li>Esto hace posible que las clases pertenecientes a diferentes jerarquías sean tratadas como instancias del mismo tipo. </li></ul>
  6. 6. Declaración de interfaces <ul><li>Una interfaz se declara casi igual que una clase, utilizando la palabra clave interface en vez de la palabra clave class : </li></ul>
  7. 7. En las interfaces de Java: <ul><li>Todos los métodos que se encuentran en una interfaz son implícitamente públicos y abstractos. </li></ul><ul><ul><li>Como una cuestión de estilo, no se utilizan los modificadores public y abstract en la definición de una interfaz. </li></ul></ul><ul><li>Todos los campos de datos de una interfaz son implícitamente públicos, estáticos y finales. </li></ul><ul><ul><li>Como un aspecto de estilo, no se utilizan los modificadores public, static y final en la definición de una interfaz. </li></ul></ul>
  8. 8. Implementando interfaces <ul><li>Para que una clase haga uso de una interfaz, se utiliza la palabra clave implements , seguida por el nombre de la interfaz: </li></ul>
  9. 9. Implementando métodos de interfaces <ul><li>Cuando una clase implementa una interfaz, accede a implementar todos los métodos de la interfaz. </li></ul><ul><li>Si la clase no implementa todos los métodos, la clase debe ser definida como abstracta. </li></ul>
  10. 10. Superinterfaz <ul><li>Una interfaz puede heredar de otra interfaz. </li></ul><ul><ul><li>En este caso, la interfaz padre es llamada superinterfaz , de forma similar al término superclase para las clases padre. </li></ul></ul><ul><li>La interfaz hija es llamada subinterfaz , de manera similar al término subclase para las clases hijas </li></ul>
  11. 11. <ul><li>Una clase solo puede heredar de una clase. </li></ul><ul><li>En contraste, una interfaz puede heredar de cualquier número de interfaces </li></ul>Herencia de interfaces
  12. 12. Implementación de varias interfaces <ul><li>Una clase puede implementar muchas interfaces: </li></ul>
  13. 13. Diagrama UML para interfaces
  14. 15. Usando Interfaces <ul><li>La interfaz Device especifica dos comportamientos,  turn-off (apagado) y  turn-on (encendido), que son comunes para dispositivos eléctricos como focos y televisiones </li></ul>
  15. 16. Clase DeviceDemo <ul><li>Todas las clases que implementan la interfaz Device deben implementar los métodos turnOff y turnOn . </li></ul><ul><li>La clase,  DeviceDemo , implementa la interfaz Device . </li></ul><ul><li>La clase DeviceDemo tiene un atributo, el nombre del dispositivo. </li></ul>
  16. 17. Clase Stopwatch <ul><li>La clase Stopwatch implementa también la interfaz Device . </li></ul><ul><li>Al encender el cronómetro ( stopwatch ), el método turnOn asigna el tiempo actual, en milisegundos, a la variable de instancia startTime . </li></ul><ul><li>Al apagar el cronómetro, el método turnOff genera como salida el tiempo en milisegundos en el que estuvo encendido el cronómetro </li></ul>

×