Diferencia entre clase abstracta y herencia

Tabla de contenido:

Diferencia entre clase abstracta y herencia
Diferencia entre clase abstracta y herencia

Video: Diferencia entre clase abstracta y herencia

Video: Diferencia entre clase abstracta y herencia
Video: Ingeniería de Software vs Ingeniería de Sistemas | ¿Cuál es la Diferencia? 2024, Noviembre
Anonim

Clase abstracta frente a herencia

La clase abstracta y la herencia son dos conceptos importantes orientados a objetos que se encuentran en muchos lenguajes de programación orientados a objetos como Java. La clase abstracta se puede considerar como una versión abstracta de una clase normal (concreta), mientras que la herencia permite que las nuevas clases amplíen otras clases. La clase abstracta es una clase que no se puede inicializar pero se puede extender. Por lo tanto, las clases abstractas solo tienen sentido si el lenguaje de programación admite la herencia. En Java, las clases Abstract se declaran usando la palabra clave Abstract, mientras que la palabra clave Extends se usa para heredar de una (super) clase.

¿Qué es la clase abstracta?

Normalmente, las clases abstractas, también conocidas como clases base abstractas (ABC), no se pueden instanciar (no se puede crear una instancia de esa clase). Por lo tanto, las clases abstractas solo tienen sentido si el lenguaje de programación admite la herencia (capacidad de crear subclases a partir de la extensión de una clase). Las clases abstractas generalmente representan un concepto o entidad abstracta con implementación parcial o nula. Por lo tanto, las clases abstractas actúan como clases principales de las que se derivan las clases secundarias, de modo que la clase secundaria compartirá las funciones incompletas de la clase principal y se puede agregar funcionalidad para completarlas.

Las clases abstractas pueden contener métodos abstractos. Las subclases que extienden una clase abstracta pueden implementar estos métodos abstractos (heredados). Si la clase secundaria implementa todos estos métodos abstractos, es una clase concreta. Pero si no es así, la clase secundaria también se convierte en una clase abstracta. Lo que todo esto significa es que, cuando el programador nombra una clase como Abstract, está diciendo que la clase estará incompleta y tendrá elementos que las subclases heredadas deben completar. Esta es una buena forma de crear un contrato entre dos programadores, lo que simplifica las tareas en el desarrollo de software. El programador, que escribe el código para heredar, necesita seguir exactamente las definiciones del método (pero, por supuesto, puede tener su propia implementación).

¿Qué es la herencia?

La herencia es un concepto orientado a objetos, que permite que nuevas clases amplíen otras clases. La palabra clave Extends se utiliza para implementar el concepto de herencia en el lenguaje de programación Java. La herencia esencialmente proporciona la reutilización del código al permitir extender las propiedades y el comportamiento de una clase existente por una clase recién definida. Cuando una nueva subclase (o clase derivada) amplía una superclase (o clase principal), esa subclase heredará todos los atributos y métodos de la superclase. La subclase puede anular opcionalmente el comportamiento (proporcionar una funcionalidad nueva o ampliada a los métodos) heredado de la clase principal. Por lo general, una subclase no puede extender varias superclases (por ejemplo, en Java). Por lo tanto, no puede usar extensiones para herencia múltiple. Para tener herencia múltiple, necesita usar interfaces.

¿Cuál es la diferencia entre clase abstracta y herencia?

Las clases abstractas generalmente representan un concepto abstracto o una entidad con implementación parcial o nula. La herencia permite que nuevas clases amplíen otras clases. Debido a que las clases abstractas no se pueden instanciar, debe usar el concepto de herencia para hacer uso de las clases abstractas. De lo contrario, una clase abstracta no tiene uso. Las clases abstractas pueden contener métodos abstractos y cuando la clase se extiende, todos los métodos (abstractos y concretos) se heredan. La clase heredada puede implementar cualquiera o todos los métodos. Si no se implementan todos los métodos abstractos, esa clase también se convierte en una clase abstracta. Una clase no puede heredar de más de una clase abstracta (esta no es una cualidad de las clases abstractas per se, sino una restricción de herencia).

Publicaciones relacionadas:

Image
Image
Image
Image

Diferencia entre clase abstracta y clase concreta

Image
Image
Image
Image

Diferencia entre virtual y abstracto

Image
Image
Image
Image

Diferencia entre clase abstracta e interfaz

Image
Image
Image
Image

Diferencia entre implementos y extensiones

Image
Image
Image
Image

Diferencia entre gráfico y árbol

Archivado en: Programación Etiquetado con: ABC, resumen, Clases base abstractas, Clase abstracta, Clases abstractas, Palabra clave abstracta, Métodos abstractos, clase concreta, Palabra clave extendida, Herencia, Clase de herencia, clase heredada, Java, herencia múltiple, conceptos orientados a objetos, clase normal, superclase

Imagen
Imagen

Sobre el autor: Indika

Indika, BSc. Eng, MSECE Ingeniería Informática, PhD. Informática, es profesor asistente y tiene intereses de investigación en las áreas de bioinformática, biología computacional y procesamiento biomédico del lenguaje natural.

Comentarios

  1. Imagen
    Imagen

    Jason dice

    30 de agosto de 2017 a las 13:25

    Gracias por explicar la diferencia. Todas mis preguntas han sido resueltas por esto.

    Responder

  2. Imagen
    Imagen

    Aus dice

    10 de mayo de 2019 a las 15:04

    mejor respuesta en la web, el profesor no explica una mierda y no tiene sentido, monotono mf. Así se explican los conceptos.

    Responder

Deja un comentario Cancelar respuesta

Su dirección de correo electrónico no se publicará. Los campos obligatorios están marcados

Comentario

Nombre

Correo electrónico

Sitio web

Solicitar artículo
Solicitar artículo
Solicitar artículo
Solicitar artículo

Publicaciones destacadas

Diferencia entre coronavirus y síntomas de resfriado
Diferencia entre coronavirus y síntomas de resfriado

Diferencia entre el coronavirus y los síntomas del resfriado

Diferencia entre coronavirus y SARS
Diferencia entre coronavirus y SARS

Diferencia entre coronavirus y SARS

Diferencia entre coronavirus e influenza
Diferencia entre coronavirus e influenza

Diferencia entre coronavirus e influenza

Diferencia entre coronavirus y covid 19
Diferencia entre coronavirus y covid 19

Diferencia entre coronavirus y Covid 19

Te puede gustar

Diferencia entre husky siberiano y malamute

Diferencia entre Cálculo AB y BC

Recomendado: