Aportes 8

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Realmente he estado super desconectado del curso :( Creo que es porque no está tan claro el flujo que une todo y se siente como partes obligadas y sin sentido
Dicho de otra manera: * **Clases abstractas**: Definen un comportamiento común entre clases relacionadas por herencia. Pueden tener tanto métodos abstractos como concretos y se utilizan cuando hay una relación "es un" entre clases. * **Interfaces**: Definen un contrato que las clases deben seguir. Son útiles para comportamientos compartidos entre clases no relacionadas y permiten la herencia múltiple en Java.
Cinco ventajas de utilizar interfaces en Java: 1. **Abstracción**: Las interfaces permiten definir un contrato que las clases deben cumplir, lo que facilita la abstracción y la separación de la definición de métodos de su implementación. 2. **Herencia** **múltiple**: A diferencia de las clases, una clase en Java puede implementar múltiples interfaces, lo que permite una forma de herencia múltiple y mayor flexibilidad en el diseño del software. 3. **Polimorfismo**: Las interfaces permiten que diferentes clases sean tratadas de la misma manera a través de una referencia común, lo que facilita el polimorfismo y la interoperabilidad entre diferentes componentes del sistema. 4. **Modularidad**: Al definir interfaces, se puede mejorar la modularidad del código, ya que las implementaciones pueden cambiarse o actualizarse sin afectar a otras partes del sistema que dependen de la interfaz. 5. **Mantenimiento** **y** **escalabilidad**: Las interfaces facilitan el mantenimiento y la escalabilidad del código, ya que permiten definir estructuras comunes para clases que realizan tareas específicas, lo que simplifica el proceso de desarrollo y actualización del software.
## INTERFACES * Se usan cuando se piensa en acciones que se comparten entre muchas clases * Relación no lineal * Se enfocan en encapsular comportamiento redundante * Comportamientos que pueden ser reutilizables * Es un contrato que sólo define los métodos y tipos de retorno * JAMÁS tiene bloques de código * permiten "simular" herencia múltiple * buena práctica que comiencen por **I**(i) y terminen por **able** * palabra reservada **implements** * Interfaces comunes (Runnable, Drawable, Callable, Visualizable) ## CLASES ABSTRACTAS * Los métodos obligatorios son los que tienen la palabra reservada **abstract** * Los métodos que no tienen esa palabra reservada no son obligatorios ```js // método abstracto abstract void dibujate(); ``` * Las clases abstractas siempre serán padres * Son una combinación de entre Interface y Herencia * **No** implementan todos los metodos * **No** crean instancias
Me gustó la explicación
Me aparece mucho este error que no puedo resolver, podrian ayudarme: C:\Users\Admin\IdeaProjects\JavaBank\_ATM\src\Account2.java:22: error: incompatible types: InsufficientFundsException cannot be converted to Throwable public abstract void withdraw(double amount) throws InsufficientFundsException; ^
Las **clases abstractas** son ideales cuando tienes una estructura común que quieres reutilizar mediante herencia, pero que no está lista para ser utilizada directamente, una clase abstracta puede contener métodos concretos y variables de instancia, lo que permite compartir código y comportamiento entre las clases hijas.
undefined