1 00:00:10,000 --> 00:00:16,590 Hola Te saludo nuevamente Ubal la costa espero que estés listo para comenzar con esta elección. 2 00:00:16,660 --> 00:00:22,340 A continuación vamos a estudiar el tema de manejo de interfaces en Java estás listo. 3 00:00:22,820 --> 00:00:31,720 Vamos interfases en la vida real en esta elección vamos a estudiar el tema de interfaces una interface 4 00:00:32,020 --> 00:00:39,620 es una forma en común de comunicarse entre diferentes dispositivos o sistemas es un contrato entre un 5 00:00:39,620 --> 00:00:42,750 proveedor y un cliente de un servicio. 6 00:00:42,800 --> 00:00:48,770 El concepto de interfaz en Java sustituye de alguna manera la necesidad del uso de herencia múltiple 7 00:00:49,370 --> 00:00:57,450 ya que en Java podemos implementar varias interfaces pero sólo podemos heredar de una sola clase una 8 00:00:57,450 --> 00:00:58,680 interfaz en Java. 9 00:00:58,680 --> 00:01:05,070 Se utiliza para definir comportamiento y posteriormente la clase debe implementar el comportamiento 10 00:01:05,070 --> 00:01:06,960 definido por la interface. 11 00:01:07,080 --> 00:01:13,920 Por ello es común que el verbo en inglés boll se utilice en algunas interfaces de la API de Java por 12 00:01:13,920 --> 00:01:22,590 ejemplo será el Lyceum lo Neighbors etc. ya que este verbo en inglés indica capacidad de hacer algo 13 00:01:25,660 --> 00:01:33,070 uso de interfaces en Java en Java una interface es una declaración formal de un contrato en la cual 14 00:01:33,070 --> 00:01:39,430 los métodos no contienen ninguna implementación muy similar a los métodos abstractos que comentamos 15 00:01:39,430 --> 00:01:40,260 anteriormente. 16 00:01:42,320 --> 00:01:51,270 Podemos observar la sintaxis para definir una interfase y también podemos observar el uso de una interface. 17 00:01:51,270 --> 00:01:58,710 Los atributos declarados en una interfase son por default públicos estáticos y finales es decir que 18 00:01:58,710 --> 00:02:04,950 son constantes que podremos acceder simplemente poniendo el nombre de la interfase y posteriormente 19 00:02:05,010 --> 00:02:07,070 el nombre de la constante. 20 00:02:07,080 --> 00:02:14,190 Por ello si definimos atributos en una interfase los escribiremos con letra mayúscula y si contiene 21 00:02:14,190 --> 00:02:20,610 varias palabras Lace pararemos por un guion bajo los métodos declarados en una interfase por default 22 00:02:20,610 --> 00:02:27,830 son públicos abstractos y no contienen ninguna implementación por ello terminan con punto y coma. 23 00:02:27,840 --> 00:02:35,310 Esto es similar a los métodos abstractos de una clase abstracta similar a la herencia de clases una 24 00:02:35,300 --> 00:02:42,250 interfaz se puede heredar de otra interfase pero no de una clase concreta entonces una interfase que 25 00:02:42,250 --> 00:02:46,420 hereda de otra interfase agregará a su definición de métodos. 26 00:02:46,420 --> 00:02:53,610 Tanto los métodos de la interfase padre como los métodos de la interfase que está definiendo una interfase 27 00:02:53,810 --> 00:03:00,020 sigue las mismas nomenclaturas de nombres que una clase así que encontraremos varias similitudes entre 28 00:03:00,020 --> 00:03:08,130 la definición de una clase y una interfase muchas clases pueden implementar la misma interface. 29 00:03:08,140 --> 00:03:15,430 Una clase puede implementar muchas interfaces aunque no tengan ninguna relación entre dichas interfaces 30 00:03:16,310 --> 00:03:22,570 como en una clase abstracta no podremos crear objetos de una interface pero sí podemos crear variables 31 00:03:22,750 --> 00:03:28,970 de tipo interface que apunten a objetos que implementaron dicha Interface. 32 00:03:28,990 --> 00:03:32,740 De esta manera también aplicará el concepto de polimorfismo. 33 00:03:32,740 --> 00:03:34,900 Según hemos estudiado anteriormente 34 00:03:38,280 --> 00:03:45,300 clases abstractas contra interfaces vamos a comentar algunas de las diferencias entre las clases abstractas 35 00:03:45,420 --> 00:03:50,730 y las interfaces así como cuándo es conveniente utilizar un concepto u otro 36 00:03:54,680 --> 00:04:01,610 una clase abstracta se utiliza para encapsular funcionalidad común entre las clases es decir características 37 00:04:01,670 --> 00:04:04,880 en común para hacer uso de la clase abstracta. 38 00:04:04,880 --> 00:04:12,050 Debemos extender dicha clase abstracta en cambio una interface define comportamiento relacionado que 39 00:04:12,050 --> 00:04:17,540 puede pertenecer a cualquier clase o estructura para hacer uso de una interfase. 40 00:04:17,540 --> 00:04:24,500 Debemos implementar la interface por lo que la recomendación es que las clases abstractas deben utilizarse 41 00:04:24,500 --> 00:04:31,730 principalmente para objetos estrechamente relacionados mientras que las interfaces son más adecuadas 42 00:04:31,880 --> 00:04:37,730 para proporcionar funcionalidad común a clases no relacionadas entre sí. 43 00:04:37,730 --> 00:04:42,970 Vamos a crear a continuación un ejemplo del uso de interfaces para dejar este concepto más claro.