Herencia e Interfaces en Programación Orientada a Objetos
Resumen
Las Interfaces son un tipo de referencia similar a una clase con solo constantes y definiciones de métodos, son de gran ayuda para definir los comportamientos que son redundantes y queremos reutilizar más de una clase, incluso cuando tenemos muchas clases y no todas pertenecen a la misma "familia".
Las interfaces establecen la forma de las clases que la implementan, así como sus nombres de métodos, listas de argumentos y listas de retorno, pero NO sus bloques de código, eso es responsabilidad de cada clase.
En VSCode puedes instalar un plugin de drawio. Luego, solo debes crear un nuevo archivo con extensión drawio, y te muestra el IDE para realizar los UML, ER, y otros tipos de gráficos.
Excelente, gracias por el dato.
Gracias por el dato instale la extensión Draw punto io muy buena herramienta.
Que genial!! Dios mio que tanto me costaba esto en la facultad jajaj
jajaja vine a este curso solo para venir a ver las Interfaces.
La gran diferencia es que en la facultad es solo contenido académico obligatorio por un ministerio de educación... aquí es sólo práctico y efectivo para la vida real. jajaja XD
Curso de UML o patrones de diseno en java me gustaria
Revise el Curso profesional de Ingeniería de Software
Una interfaz no tiene bloques de código; en ella se encuentra la declaración de los métodos(sin contenido) y/o constantes.
eje:
publicinterfaceRunnable{voidrun();}
y la forma de implementarla en una clase es con la palabra reservada implements
Te falto la I al inicio o Interface al final, son las dos convenciones mas comunes que he visto
Buen ejemplo, de acuerdo a lo que dice la profesora, se puede usar la terminacion "able" o bien la "I" al principio del nombre.
Draw.io is free, and LucidChart no.
Super bueno su aporte, me ayudo a organizar las ideas y conceptos. Muchas Gracias
Interfaces son el conjunto de directrices que deben cumplir las clases. Es una colección de métodos abstractos y propiedades constantes.
En las interfacesespecificamos que se debe hacer pero no como se debe hacer puesto que son las clases las encargadas de implementar esas interfaces y las que describan la lógica del comportamiento de los métodos que existan dentro de esa interfazESTAMOS MARCANDO LAS DIRECTRICES QUE DEBEN CUMPLIR LAS CLASES
Además son muy útiles ya que solucionan el problema de la herencia simple en Java.
Explicacion muy concisa sobre las interfaces, grande tu aporte.
Como tal las interfaces son un contrato, que cuando se usan, se acuerda implementar todos los métodos de la interfaz con sus correspondientes parámetros
Interfaces vs Herencia
La herencia nos permite crear nuevas clases a partir de otras, para poder reutilizar o modificar el comportamiento de las mismas dentro de una misma jerarquía
Las Interfaces son de gran ayuda para definir los comportamientos que son redundantes y queremos reutilizar en más de una clase (Sólo la implementación) esto sin importar la jerarquía o si son elementos completamente diferentes
La herencia multiple no esta permitida en java, sin embargo puede ser simulada mediante interfaces.
Muchas gracias por traer el concepto de herencia multiple
Con respecto a la clase NURSE y DOCTOR no se podrian crear una clase padre ya que ambas tienen el mismo atributo por decirlo asi, que seria especialidad
Pues creo que al tener un solo atributo, no necesariamente se podría manejar con una clase padre, la clase padre solo manejaría especialidad, en todo caso si manejara más atributos idénticos se podría implementar
pensé lo mismo podria ser PersonalMedico y que Doctor y Nurse hereden.
En Java no te permite heredar de muchas clases, solo de una; pero si te permite implementar varias interfaces.
el padre puede tener varios hijos, los hijos tienen el mismo padre xd
Una cosa curiosa de las interfaces es que los métodos que yacen dentro son casi la firma de un método, y digo casi porque se toma en cuenta además el nombre de los parámetros, en cambio, la firma del método solo cuenta con el nombre y el tipo de los parámetros.
Supongamos que tenemos el siguiente código:
Como ven, carece del modificador de acceso, del tipo de retorno y del nombre de cada parámetro. Y sin nos fijamos bien, es muy similar a una método de una interface:
El concepto de firma de método es muy importante, es algo que, si bien no preguntan en las entrevistas de un primer trabajo de programador Java, es importante para ascender de puesto dentro de este ámbito.
No conocia el concepto de firma, gracias
simplemente quiero ser el primer comentario. Todo genial hasta ahora :)
Súper. ¡Qué bueno que te esté gustando! Nunca pares de aprender 😉
Estos son mis apuntes de esta Clase, espero que les sean de utilidad, los hice en base a lo que alcance a entender en la clase, así que si hay algo incorrecto me avisan en los comentarios.
Interfaces
Es un tipo de referencia similar a una Clase que podría contener sólo constantes y definiciones de métodos. Una interfaz puede contener por ejemplo métodos que se repiten en varias Clases que no pertenecen a la misma familia. Esa es su principal diferencia con respecto a la herencia entre Clases pues en esta las Clases que tienen un método en el que se aplican polimorfismo pertenecen a la misma familia y tienen a una superclase en común; por el contrario en las interfaces se pueden definir diferentes comportamientos para Clases que no tienen ninguna relación entre si y que pertenecen a familias diferentes.
En las interfaces se establece la forma de una Clase (nombres de métodos, listas de argumentos y tipos de retorno) pero no bloques de código, por ejemplo en una interfaz sólo se pondría la redacción de un método pero no su implementación pues esta será radicalmente diferente para cada Clase.
Declarar una interfaz en Java
// Crear una interfazpublicIScheduable{schedule(Date date,StringTime);}// Implentar una interfazen una ClasepublicclassAppointmentDoctorimplementsIScheduable{...}
**Nota: ** es muy común que los nombres de las interfaces terminen en "able" (ejemplos:rundable, printable, readable), esto se debe a que las interfaces se enfocan en las actividades que son redundantes en el código. También es común encontrar que el nombre de la interfaz comience con una "I".
En VSCode puedes instalar un plugin de drawio.
Las interfaces también son útiles en Java porque permiten la implementación de la herencia múltiple. En Java, una clase solo puede extender de una única superclase, pero puede implementar varias interfaces. Esto significa que una clase puede heredar comportamiento de una superclase y también puede implementar comportamiento adicional mediante la implementación de interfaces.
Las Interfaces son un tipo de referencia similar a una clase con solo constantes y definiciones de métodos, son de gran ayuda para definir los comportamientos que son redundantes y queremos reutilizar más de una clase, incluso cuando tenemos muchas clases y no todas pertenecen a la misma “familia”.
Las interfaces establecen la forma de las clases que la implementan, así como sus nombres de métodos, listas de argumentos y listas de retorno, pero NO sus bloques de código, eso es responsabilidad de cada clase.