20

Qué es una clase abstracta en la programación orientada a objetos

90521Puntos

hace 2 años

Curso de Programación Orientada a Objetos: POO
Curso de Programación Orientada a Objetos: POO

Curso de Programación Orientada a Objetos: POO

La misión: lograr que la virtualidad sea idéntica a la realidad. El elegido para esta tarea: tú. Sé parte de la generación que logra cambiar el mundo a través de ideas innovadoras, porque la diferencia entre ser testigo del cambio y ser parte de él comienza con Platzi.

Empecemos por lo básico:

Qué es una clase abstracta

Las clases abstractas, como su nombre lo indica, son algo abstracto, no representan algo específico y las podemos usar para crear otras clases. No pueden ser instanciadas, por lo que no podemos crear nuevos objetos con ellas.

Podemos imaginar una clase Animal, con métodos como caminar y comer, como una clase base que podemos heredar para construir otras clases como León o Pájaros. Ambas van a heredar de nuestra clase animal con sus respectivos métodos y tendremos la posibilidad de crear nuestros objetos. De esta manera podemos reducir código duplicado y mejorar la calidad del código.

En Java declaramos una clase abstracta con la palabra reservada abstract.

publicabstractclassAnimal{

    publicAnimal(String value){
           // Constructorthis.value = value;
    }

    publicabstractvoidsound()

}

También podemos hacer lo mismo con los métodos: si una clase tiene métodos abstractos, entonces nuestra clase deberá ser abstracta.

Nuestro método abstracto será compartido por las clases que hereden de nuestra clase abstracta. En el ejemplo, un animal puede comportarse de manera similar y realizar las mismas acciones, como caminar, comer y dormir, pero el sonido emitido no será igual en todos ellos, no escucharás a un pájaro rugir como un león.

En Python podemos hacer también clases abstractas, pero necesitamos importar un módulo ya que por sí mismo no nos proporciona clases abstractas.

from abc import ABC, abstractmethod

classAnimal(ABC):def__init__(self, value):
        self.value = value
        super().__init__()

Nuestra clase Animal va a heredar desde ABC que es igual a Abstract Base Class y también podemos tener métodos abstractos con el decorador abstractmethod el cual importamos en la primera línea para este ejemplo.

from abc import ABC, abstractmethod

classAnimal(ABC):def__init__(self, value):
            self.value = value
            super().__init__()
    
@abstractmethoddefsound(self):pass

Todo lo relacionado sobre este tema y mucho más como Herencia, Polimorfismo, Abstracción, Encapsulamiento lo puedes aprender en el nuevo curso de Programación Orientada a Objetos y así ampliar más tus conocimientos al entender todos estos conceptos con ejemplos en cuatros lenguajes diferentes como PHP, Java, JavaScript y Python. Esta increíble.

Curso de Programación Orientada a Objetos: POO
Curso de Programación Orientada a Objetos: POO

Curso de Programación Orientada a Objetos: POO

La misión: lograr que la virtualidad sea idéntica a la realidad. El elegido para esta tarea: tú. Sé parte de la generación que logra cambiar el mundo a través de ideas innovadoras, porque la diferencia entre ser testigo del cambio y ser parte de él comienza con Platzi.
Kevin
Kevin
iKenshu

90521Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1
27407Puntos

Recuerdo mis inicios con POO cuando estudiaba mi carrera, creo que debería repasarlo 🤔

1
683Puntos

Explicación breve y concisa de estos terminos, muy bueno! Solamente en las porciones de codigo, hay unas secciones que hace falta un espacio, deberías revisar eso para mejorar la legibilidad, igual no afecta en nada, pero para dejarlo mucho mejor!

Gracias por el aporte!

1
5691Puntos

¿Por qué este tema y el de Interfaces no están en el curso de POO?

1
31316Puntos

😃 excelente entiendo un poco mejor el concepto