Herencia: mecanismo por el cual una clase (subclase) adquiere los atributos y métodos de otra (superclase), permitiendo la reutilización y extensión del código. Se indica con la palabra clave extends.
Redefinición (Override): capacidad de una subclase para proporcionar una implementación específica de un método que ya está definido en su superclase.
Palabra clave super: referencia a la superclase inmediata. Se usa para invocar constructores (super()) o métodos (super.metodo()) de la clase padre.
Clase Object: raíz de la jerarquía de clases en Java. Todas las clases heredan de Object directa o indirectamente. Incluye métodos fundamentales como toString(), equals() y hashCode().
Clase Abstracta: clase declarada con abstract que no puede ser instanciada. Puede contener métodos abstractos (sin cuerpo) que las subclases deben implementar obligatoriamente.
Polimorfismo: capacidad de una referencia de tipo superclase para apuntar a objetos de cualquiera de sus subclases, ejecutando el comportamiento específico del objeto real en tiempo de ejecución.
Interfaz: contrato que define un conjunto de métodos abstractos y constantes que una clase debe implementar. Se define con interface y se aplica con implements.
Implementación múltiple: característica que permite a una clase implementar varias interfaces simultáneamente, superando la limitación de la herencia simple de clases.
Interfaces de ordenación:
Comparable: define el orden natural de los objetos de una clase mediante el método compareTo().
Comparator: permite definir criterios de ordenación externos y múltiples para una clase mediante el método compare().
Clases Anónimas: clases sin nombre que se definen e instancian en el mismo lugar, útiles para implementaciones rápidas de interfaces o clases abstractas (común en manejadores de eventos o comparadores).
Excepción: evento anormal que ocurre durante la ejecución de un programa y rompe su flujo normal.
Jerarquía de excepciones:
Throwable: clase base para todo lo que puede ser lanzado.
Error: situaciones críticas externas al programa (por ejemplo, falta de memoria) que generalmente no se capturan.
Exception: situaciones que el programa debería capturar y tratar. Incluye checked exceptions (obligatorias de gestionar) y RuntimeException (unchecked).
Manejo de excepciones:
try: bloque que contiene el código que puede lanzar una excepción.
catch: captura y trata una excepción específica.
finally: bloque que se ejecuta siempre, haya o no excepción, ideal para liberar recursos.
Lanzamiento de excepciones:
throw: se usa para lanzar explícitamente una instancia de excepción.
throws: se usa en la firma de un método para indicar que este puede lanzar determinadas excepciones.
Singleton: patrón creacional que garantiza que una clase tenga una única instancia y proporciona un punto de acceso global a ella.
MVC (Model-View-Controller): patrón de arquitectura que separa la aplicación en tres capas: los datos (Modelo), la interfaz (Vista) y la lógica de control (Controlador).
DAO (Data Access Object): patrón estructural que abstrae y encapsula el acceso a la fuente de datos, separando la lógica de negocio de la persistencia.
Iterator: patrón de comportamiento que permite recorrer los elementos de una colección sin exponer su estructura interna.