Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Principios de POO: Abstracción | Poo
Java POO
course content

Contenido del Curso

Java POO

Java POO

1. Cómo Trabajar con el IDE
2. Poo
3. Interfaz

book
Principios de POO: Abstracción

Abstracción

Hemos llegado al último pero muy importante principio de la POO: Abstracción. La palabra "abstracción" suena bastante abstracta y, en resumen, este principio nos indica que debemos depender de la abstracción en lugar de una implementación específica. Sin embargo, esto puede parecer complejo por ahora. Comencemos revisando la definición:

Por ejemplo, tenemos una clase llamada Person,, y de ella se derivan muchas clases diferentes. Person tiene varios campos y métodos que son comunes para todas las clases. Sin embargo, cuando tenemos una clase llamada BasketballPlayer,, la característica height se vuelve crucial, mientras que para una clase como Driver, height es irrelevante y no importante. Ahí es donde entra en juego la abstracción. Al heredar de una abstracción, podemos hacer que el parámetro height sea opcional, de modo que no tengamos que usarlo donde no sea necesario.

Puede parecer complejo, así que pasemos a un ejemplo:

Car.java

Car.java

copy
123456789
public abstract class Car { String model; int year; int maxSpeed; String color; public abstract void move(); public abstract void stop(); }

La clase Car no representa algo específico. No existe simplemente un Car; hay sedanes, camiones, tractores. Por lo tanto, dependemos de la abstracción llamada Car. Para simplificarlo aún más: Car es una plantilla a partir de la cual creamos clases de autos específicas.

Presta atención a la sintaxis:

Esta es la sintaxis para declarar una clase abstracta. Además, observa la sintaxis para declarar un método abstracto:

Un método abstracto no tiene cuerpo; esta es su característica principal. Las subclases de una clase abstracta sobrescribirán este método abstracto para definir su propia implementación, utilizando polimorfismo.

Veamos más de cerca qué es una clase abstracta:

Ten en cuenta que no podemos crear un objeto de una clase abstracta; esto resultará en un error:

Las clases abstractas nos liberan de tratar solo con "objetos"; nos proporcionan un estado básico y comportamiento. Tomando el ejemplo de los autos, cada auto debe tener un modelo, año de producción, velocidad máxima y color. También deben poder moverse y detenerse. Eso es todo; a partir de ahí, diseñarás tus clases específicas basadas en este esquema abstracto.

Reglas para crear una clase abstracta

  1. Una clase abstracta es una clase que contiene al menos un método abstracto. Puedes crear una clase abstracta sin métodos abstractos, pero entonces no tendría sentido. No podrás instanciar objetos de una clase abstracta;

  2. Los métodos abstractos solo pueden existir dentro de una clase abstracta; no puedes crear métodos abstractos fuera de una clase abstracta;

  3. Los métodos dentro de una clase abstracta pueden ser métodos abstractos o métodos con implementación;

  4. Una clase que hereda de una clase abstracta debe sobrescribir todos los métodos abstractos;

  5. Solo puedes heredar de una clase como máximo (abstracta o no abstracta);

  6. Una clase abstracta debe representar las propiedades y comportamientos comunes de sus clases derivadas. Esto se discutirá con más detalle al estudiar los principios SOLID.

Consideremos un ejemplo para entender cómo las subclases deben sobrescribir los métodos abstractos heredando de una clase abstracta, usando el ejemplo de la clase hija Truck:

Aquí tienes el código de la captura de pantalla, reescrito para mejorar su legibilidad y claridad:

Car.java

Car.java

Truck.java

Truck.java

Main.java

Main.java

copy
123456789
public abstract class Car { String model; int year; int maxSpeed; String color; public abstract void move(); public abstract void stop(); }

Analicemos en detalle lo que se muestra arriba:

  • Primera diapositiva: Se crea una subclase Truck que hereda de la clase abstractaCar. Se observa que el IDE solicita implementar los métodos requeridos;

  • Segunda diapositiva: Se sobrescriben los métodos necesarios. Por ejemplo, se indica que el Truck ha comenzado a moverse y luego se ha detenido;

  • Tercera diapositiva: Se crea un objeto en el método main. Presta atención a la sintaxis utilizada: Car name = new Truck();. Se inicia la creación del objeto mediante la abstracción y se finaliza con una implementación específica. Esto se denomina composición. Luego se asignan valores a los campos según sea necesario y se llaman a los métodos sobrescritos.

¡Voilà! Si comprendes todo, has aprendido a utilizar una clase abstracta.

Resumen

La abstracción es probablemente el principio más desafiante de la POO para comprender, y es muy probable que no hayas entendido todo en este momento. Pero no pienses que estás solo en esto. La abstracción es un concepto que inicialmente resulta difícil de captar para la mayoría de los desarrolladores. Con el tiempo, comprenderás mejor cómo trabajar eficazmente con la abstracción y las clases abstractas. La abstracción es un principio crucial porque nos permite hacer que nuestros programas sean extensibles y altamente flexibles.

1. ¿Qué es la abstracción en la Programación Orientada a Objetos?

2. ¿Cuál de las siguientes afirmaciones es verdadera sobre la abstracción?

3. ¿Cuál es el propósito de una clase abstracta en Java?

4. ¿Cómo contribuye la abstracción al mantenimiento del código?

question mark

¿Qué es la abstracción en la Programación Orientada a Objetos?

Select the correct answer

question mark

¿Cuál de las siguientes afirmaciones es verdadera sobre la abstracción?

Select the correct answer

question mark

¿Cuál es el propósito de una clase abstracta en Java?

Select the correct answer

question mark

¿Cómo contribuye la abstracción al mantenimiento del código?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

Java POO

Java POO

1. Cómo Trabajar con el IDE
2. Poo
3. Interfaz

book
Principios de POO: Abstracción

Abstracción

Hemos llegado al último pero muy importante principio de la POO: Abstracción. La palabra "abstracción" suena bastante abstracta y, en resumen, este principio nos indica que debemos depender de la abstracción en lugar de una implementación específica. Sin embargo, esto puede parecer complejo por ahora. Comencemos revisando la definición:

Por ejemplo, tenemos una clase llamada Person,, y de ella se derivan muchas clases diferentes. Person tiene varios campos y métodos que son comunes para todas las clases. Sin embargo, cuando tenemos una clase llamada BasketballPlayer,, la característica height se vuelve crucial, mientras que para una clase como Driver, height es irrelevante y no importante. Ahí es donde entra en juego la abstracción. Al heredar de una abstracción, podemos hacer que el parámetro height sea opcional, de modo que no tengamos que usarlo donde no sea necesario.

Puede parecer complejo, así que pasemos a un ejemplo:

Car.java

Car.java

copy
123456789
public abstract class Car { String model; int year; int maxSpeed; String color; public abstract void move(); public abstract void stop(); }

La clase Car no representa algo específico. No existe simplemente un Car; hay sedanes, camiones, tractores. Por lo tanto, dependemos de la abstracción llamada Car. Para simplificarlo aún más: Car es una plantilla a partir de la cual creamos clases de autos específicas.

Presta atención a la sintaxis:

Esta es la sintaxis para declarar una clase abstracta. Además, observa la sintaxis para declarar un método abstracto:

Un método abstracto no tiene cuerpo; esta es su característica principal. Las subclases de una clase abstracta sobrescribirán este método abstracto para definir su propia implementación, utilizando polimorfismo.

Veamos más de cerca qué es una clase abstracta:

Ten en cuenta que no podemos crear un objeto de una clase abstracta; esto resultará en un error:

Las clases abstractas nos liberan de tratar solo con "objetos"; nos proporcionan un estado básico y comportamiento. Tomando el ejemplo de los autos, cada auto debe tener un modelo, año de producción, velocidad máxima y color. También deben poder moverse y detenerse. Eso es todo; a partir de ahí, diseñarás tus clases específicas basadas en este esquema abstracto.

Reglas para crear una clase abstracta

  1. Una clase abstracta es una clase que contiene al menos un método abstracto. Puedes crear una clase abstracta sin métodos abstractos, pero entonces no tendría sentido. No podrás instanciar objetos de una clase abstracta;

  2. Los métodos abstractos solo pueden existir dentro de una clase abstracta; no puedes crear métodos abstractos fuera de una clase abstracta;

  3. Los métodos dentro de una clase abstracta pueden ser métodos abstractos o métodos con implementación;

  4. Una clase que hereda de una clase abstracta debe sobrescribir todos los métodos abstractos;

  5. Solo puedes heredar de una clase como máximo (abstracta o no abstracta);

  6. Una clase abstracta debe representar las propiedades y comportamientos comunes de sus clases derivadas. Esto se discutirá con más detalle al estudiar los principios SOLID.

Consideremos un ejemplo para entender cómo las subclases deben sobrescribir los métodos abstractos heredando de una clase abstracta, usando el ejemplo de la clase hija Truck:

Aquí tienes el código de la captura de pantalla, reescrito para mejorar su legibilidad y claridad:

Car.java

Car.java

Truck.java

Truck.java

Main.java

Main.java

copy
123456789
public abstract class Car { String model; int year; int maxSpeed; String color; public abstract void move(); public abstract void stop(); }

Analicemos en detalle lo que se muestra arriba:

  • Primera diapositiva: Se crea una subclase Truck que hereda de la clase abstractaCar. Se observa que el IDE solicita implementar los métodos requeridos;

  • Segunda diapositiva: Se sobrescriben los métodos necesarios. Por ejemplo, se indica que el Truck ha comenzado a moverse y luego se ha detenido;

  • Tercera diapositiva: Se crea un objeto en el método main. Presta atención a la sintaxis utilizada: Car name = new Truck();. Se inicia la creación del objeto mediante la abstracción y se finaliza con una implementación específica. Esto se denomina composición. Luego se asignan valores a los campos según sea necesario y se llaman a los métodos sobrescritos.

¡Voilà! Si comprendes todo, has aprendido a utilizar una clase abstracta.

Resumen

La abstracción es probablemente el principio más desafiante de la POO para comprender, y es muy probable que no hayas entendido todo en este momento. Pero no pienses que estás solo en esto. La abstracción es un concepto que inicialmente resulta difícil de captar para la mayoría de los desarrolladores. Con el tiempo, comprenderás mejor cómo trabajar eficazmente con la abstracción y las clases abstractas. La abstracción es un principio crucial porque nos permite hacer que nuestros programas sean extensibles y altamente flexibles.

1. ¿Qué es la abstracción en la Programación Orientada a Objetos?

2. ¿Cuál de las siguientes afirmaciones es verdadera sobre la abstracción?

3. ¿Cuál es el propósito de una clase abstracta en Java?

4. ¿Cómo contribuye la abstracción al mantenimiento del código?

question mark

¿Qué es la abstracción en la Programación Orientada a Objetos?

Select the correct answer

question mark

¿Cuál de las siguientes afirmaciones es verdadera sobre la abstracción?

Select the correct answer

question mark

¿Cuál es el propósito de una clase abstracta en Java?

Select the correct answer

question mark

¿Cómo contribuye la abstracción al mantenimiento del código?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7
some-alt