# data[].attributes.body
Usa interfaces cuando necesites definir comportamientos puros reutilizables.

Separación de interfaz y implementación

Soporte mediante clases abstractas e interfaces

Usa clases abstractas cuando haya comportamiento compartido además de métodos abstractos.

Diseña pensando en la extensibilidad: nuevas implementaciones no deberían requerir cambios en el código cliente.

# data[].attributes.body
1.- permite definir muchos metodos con el mismo nombre en la misma clase siempre y cuando tenga firmas diferentes

2.- mismos nombres diferentes:

parametros Se pueden definir varios métodos con el mismo nombr;

3.- El tipo de retorno no es parte de la firma del metodo:

Dos métodos no pueden estar sobrecargados solo por cambiar su tipo de retorno. El compilador de Java ignora el tipo de retorno para resolver la llamada al método.

4.- Es un tipo de polimorfismo estatico:

La sobrecarga se conoce como polimorfismo

en tiempo de compilación Esto significa que el compilador resuelve la llamada al método

5.- Se puede aplicar a constructores:

La sobrecarga no se limita a los métodos ordinarios; también se puede aplicar a los constructores de una clase.

# data[].attributes.body
---------5 Ideas de Herencia--------

1. La clase que hereda es llamada clase hija.

2. La herencia es hecha a través de la palabra reserva.

3. Una clase de la cual heredan otras es llamada clase padre.

4. Permite crear una nueva clase a partir de una clase existente.

5. Los miembros privados no se heredan directamente.

# data[].attributes.body
Abstracción y Polimorfismo en Java

1- Vehículo: clase abstracta con acelerar(), Auto y Moto la implementan.

2- Figura: Figura f = new Circulo(); f.calcularArea(); — mismo método, distinto resultado.

3- Pago: clase abstracta Pago con procesar() en Yape, Tarjeta, Efectivo.

4- Animal: Animal a = new Perro(); a.hacerSonido(); — cada animal suena distinto.

5- Base de datos: ConexionBD abstracta, MySQL y SQLite definen conectar().

# data[].attributes.body
- permite trabajar con objetos distintos usando el mismo codigo

- hace que el programa sea más facil de mantener y actualizar

- Te da la posibilidad de añadir nuevas clases sin cambiar lo que ya existe

- es como hablar un mismo idioma con diferentes personas ya que cada uno responde a su manera

- hace que el código sea mas ordenado y menos repetitivo

# data[].attributes.body
1. Privacidad: Protege los datos con variables private.

2. Acceso controlado: Usa getters y setters para manejar esos datos.

3. Seguridad: Evita cambios inesperados o dañinos.

4. Fácil mantenimiento: Cambia internamente sin afectar al resto.

5. Código ordenado: Facilita el crecimiento y la reutilización.

# data[].attributes.body
Ideas 5

(1) Qué es sobre carga: La sobrecarga o sea el overloading, es cuando en una clase tenemos varios métodos con el mismo nombre, pero cambian los parámetros. Sirve para el código que se vea más limpio y sea más fácil de entender, sin llenar todo de nombres raros.

(2) Polimorfismo en tiempo de compilación: Esto se llama polimorfismo estático. porque el compilador ya saber qué método va usar antes de ejecutar el programa. O sea, todo se decide al toque cuando compilas, no cuando corre.

(3) Diferencias por parámetros: Pa´ que funcione la sobre carga, los métodos deben tener distinto número o tipo de parámetros. Si solo cambia el tipo de dato que devuelve, ahí sí no pasa nada, eso marca error. Por eso hay que fijarse bien en los parámetros.

(4) Hacer el código más claro: Con la sobre carga el código se ve más ordenado. Por ejemplo, puedes tener varios métodos que se llamen "calcular", pero cada uno hace algo distinto según lo que le pases. Así no andas inventando mil nombres.

(5) También se usa en constructores: No solo se sobrecargan métodos , también los constructores. Pueden tener varios constructores pa´ crear un objeto de distintas maneras . Eso te da más libertad al momento de programar

# data[].attributes.body
5 Ideas sobre la sobre cargar

1.-Evitar nombres repetidos:

Gracias a la sobrecarga no tienes que poner nombres como sumar1 , sumar2 o sumardecimal. Todo puede llamarse igual, solo cambian los parámetros y listo, queda más chévere y ordenado.

2.-Soportar distintos tipos de datos:

Puedes usar la sobrecarga para trabajar con varios tipos de datos. Por ejemplo, un método sumar puede sumar enteros, decimales o hasta arreglos. Todo con el mismo nombre, solo cambian los parámetros.

3.-Tiene sus reglas:

No todo se puede sobrecargar, ah. Si solo cambias el tipo de retorno o el “public o private, eso no vale. Solo cuenta cuando cambias los parámetros, sino el compilador se raya.

4.-Hace el código más pro:

En resumen, la sobrecarga hace que tu programa se vea más profesional. Ayuda a mantener todo ordenadito, más fácil de mantener y sin nombres raros. Es una técnica clave si quieres programar.

5.-Ejemplo bássico:

Por ejemplo, en Java puede tener:

java

void mostrar(String nombre);

void mostrar(String nombre, int edad);

Los dos se llaman igual, pero el programa sabe cuál usar. Así de fácil, el código queda más bacán y sin confusiones.

# data[].attributes.body
JEFERSON PORTAL

1) Herencia es reutilizar:

Permite reutilizar código de una clase existente. En vez de escribirlo todo de nuevo, heredas lo que ya sirve y solo cambias lo necesario.

2) Extiende una clase:

Una clase hija o "subclase" extiende a una clase padre.

3) Hereda atributos y métodos:

Una subclase obtiene automáticamente todas las variables y funciones públicas o protegidas de su padre.

4) Puede agregar o modificar cosas:

La subclase puede añadir su propio comportamiento o cambiar lo que no le sirve del padre, usando override.

5) No hereda todo:

Los elementos privados no se heredan directamente. Pero sí pueden usarse a través de métodos públicos o protegidos.

JHAN PIER TORRES PÉREZ

6) Super hace referencia al padre:

Con super, puedes acceder al constructor o métodos de la clase padre. Útil si necesitas la versión original de algo.

7) Solo herencia simple:

En Java, una clase solo puede heredar de una clase a la vez (no hay herencia múltiple directa).

8) Jerarquías ordenadas:

La herencia permite crear estructuras organizadas: desde lo más general hasta lo más específico.

9) Polimorfismo entra en juego:

Gracias a la herencia, puedes tratar objetos hijos como si fueran del tipo padre, lo que hace tu código más flexible.

10) Úsala con sentido común:

No todo tiene que heredarse. Si una clase no tiene una relación lógica de tipo "es un", no uses herencia.

# data[].attributes.headline
polimorfismo--- Azziz Raid Isrrael Alvarado Pachas 

# data[].attributes.subject
polimorfismo--- Azziz Raid Isrrael Alvarado Pachas 

# data[].attributes.body
- polimorfismo es que un mismo metodo pueda hacer cosas distintas segun el objeto que lo use

-Es como un disfraz porque por ejemplo un perro puede ser tratado como un animal pero sigue actuando como perro

- une la herencia y las interfaces, porque hace que el codigo realmente se adapte al objeto que queremos enseñar

- evita usar muchos if-else porque cada objeto ya sabe que hacer

- Su rol es dar flexibilidad ya que permite que el programa crezca sin tener que reescribir todo

# data[].attributes.body
1: privados:
En el encapsulamiento, la palabra private se usa para que los atributos de una clase no sean accesibles directamente desde fuera, garantizando que solo se modifiquen mediante métodos controlados (getters y setters). Así se protege la información y se mantiene la seguridad del objeto.

2: públicos:
Se usan métodos get y set públicos para acceder y cambiar los datos de forma controlada.

3: setters:
Los métodos set pueden verificar que los valores sean correctos antes de asignarlos, manteniendo el objeto seguro.

4:Mejora la reutilización:
Clases encapsuladas pueden usarse fácilmente en diferentes partes del programa.

5 : Facilita la depuración:
Controlar el acceso a datos ayuda a encontrar errores más rápido.

# data[].attributes.body
1.El polimorfismo permite que una sola interfaz o método pueda funcionar con objetos de diferentes clases.

2.El polimorfismo reduce la necesidad de escribir código condicional o repetitivo para manejar diferentes tipos de objetos.

3.Cuando el código es más flexible y menos acoplado, es mucho más fácil de mantener.

4.El polimorfismo permite que los métodos y clases sean reutilizados de manera más eficiente.

5.El polimorfismo en Java se apoya en gran medida en el uso de interfaces y clases abstractas, lo que promueve buenas prácticas de diseño.

# data[].attributes.body
Polimorfismo:

-Polimorfismo significa "muchas formas"

-Es pilar de POO

-Polimorfismo permite que un solo nombre de método tenga diferentes comportamientos

-Tipos de polimorfismo:

--Sobrescribir un método para que responda de maneras diferentes

--Sobrecargar es que los parámetros sean distintos para el ---que el programa pueda trabajar con distintos tipos de

--datos o mas.

Abstracción

-Sirve para seleccionar de un conjunto de datos para mostrar solo

los detalles mas importantes del ejemplo

-La abstracción se aplica usando clases e interfaces asbtractas

-Se pone abstract a una clase

Herencia

-Herencia es dar a una clase los atributos o métodos que

teníamos en un clase padre o Superclase,

-Con "extends" aplicamos herencia

Sobrecarga

-Tener el mismo método pero diferentes parametros

Encapsulamiento

-Encapsulamiento consiste en poner en privado(private) los

atributos y usar los getters (atrapar)y setters(mostrar)

para definirlos como se mostraran y controlaran.

-En palabras simples sirve para el control y manejo de los atributos

# data[].attributes.body
Aristica:

1.-Permite usar el mismo método con diferentes parámetros para que sea mas fácil de usar y tenga mayor flexibilidad al modificar.

2.-Permite simplificar el código con nombres únicos, para obtener Código más limpio y entendible.

3.-Evita duplicar métodos similares
para así obtener menos código repetido y cometer menos errores.

4.-Facilita añadir nuevas versiones sin romper código para así poder ampliar el código y sea mas fácil de mantenerla estable.

5.-Mejora la experiencia del programador
asciendo la mas intuitivo y productivo.

# data[].attributes.body
-El polimorfismo permite que un mismo método tenga diferentes comportamientos según el objeto que lo utilice.

-Se logra principalmente a través de la herencia y la sobrescritura de métodos.

-Una clase padre puede referenciar objetos de sus clases hijas, ejecutando sus versiones específicas de los métodos.

-Existen dos tipos: polimorfismo en tiempo de compilación (sobrecarga) y en tiempo de ejecución (sobrescritura).

-Facilita el uso de colecciones de objetos distintos pero relacionados, simplificando el diseño del código.

# data[].attributes.body
CULQUICONDOR
------------ 5 IDEAS ---------------

1.- Esta compuesta de métodos y atributos.

2.- Los "PRIVATE" no pueden ser heredados.

3.- Los "CONSTRUCTORES" no se heredan.

4.- Las "SUPERCLASE" y "SUBCLASE" pueden tener sus propios constructores.

5.- En Java no se permite la HERENCIA múltiple.