[MUSIC] you que tenemos clara la herencia, you podemos pasar a nuestro siguiente tema que son las interfaces. Las interfaces son un tipo de referencia que son muy similar a una clase. Es decir, ésta también va a tener atributos y también va a tener métodos. Pero, ¿adivina qué?, ninguno de estos métodos van a ser implementados. Es decir, solamente dejaremos el método definido tal cual, sin ninguna línea de código dentro, sólo lo definiremos. Y posteriormente, cuando los implementemos, ahí es donde colocaremos todo el código que necesita ese método. Una vez que you tenemos todo ésto implementado, you podemos crear muchos más objetos de diferentes tipos. Podemos crear muchos jeans, podemos crear muchas playeras y muchos calcetines. Todo esto reutilizando código de la mejor manera, utilizando la herencia. Analicemos nuestro código para ver si tenemos presente alguna interfaz que podamos implementar. ¿Recuerdas ésto? Aquí tenemos nuestra familia de ropa, nuestra clase padre ropa. Nuestras clases hijo, jeans, calcetines y playera. Pero ahora imagina que viene otra familia. Viene la clase padre teléfono, que tiene como clase hijo smartphone y teléfono de hogar. De esa forma es como podríamos definir algunas clases hijo de una clase padre teléfono dentro de una tienda donde estaremos trabajando con muchos tipos de productos. Nuestra clase padre teléfono, nuestra clase hijo smartphone y nuestra otra clase hijo teléfono de hogar. Como observas, la clase padre you tiene todos los atributos y métodos que las dos clases hijos tienen en común. Ahora detectamos algunos métodos o algunas cosas que tiene esta familia en común con la otra familia. Por ejemplo, todos los productos de una tienda virtual, una tienda online o de cualquier tienda, se les podría hacer una devolución. Algunos productos sí se podrían hacer una devolución, y algunos no. Entonces podríamos detectar que entre familias de productos, algunos productos se puede hacer una devolución, y algunos no. En ese tipo de coincidencias, es decir, podríamos detectar el método hacerDevolucion(). En ese tipo de coincidencias entre métodos y entre familias, es donde vienen las interfaces. Para eso nos funcionan las interfaces. Recuerda que en las interfaces sólo definimos el concepto del método, pero no implementamos código. Entonces podría verse algo así. Como una interfaz se implementa en diferentes clases de diferentes familias. Aquí no tenemos jerarquías de padre, hijo sino que, con una interfaz se puede implementar a cualquier nivel. Tanto a un padre, como a un hijo o algunos cuantos hijos, o algunas cuantas familias. [MUSIC]