Diferència entre la classe abstracta i l'herència

Taula de continguts:

Diferència entre la classe abstracta i l'herència
Diferència entre la classe abstracta i l'herència

Vídeo: Diferència entre la classe abstracta i l'herència

Vídeo: Diferència entre la classe abstracta i l'herència
Vídeo: Enginyeria del Software - Context Switching 2024, Desembre
Anonim

Classe abstracta vs herència

La classe abstracta i l'herència són dos conceptes importants orientats a objectes que es troben en molts llenguatges de programació orientats a objectes com Java. La classe abstracta es pot considerar com una versió abstracta d'una classe normal (concreta), mentre que l'herència permet que noves classes estenguin altres classes. La classe abstracta és una classe que no es pot inicialitzar però que es pot ampliar. Per tant, les classes abstractes només tenen sentit si el llenguatge de programació admet l'herència. A Java, les classes abstractes es declaren mitjançant la paraula clau Abstract, mentre que la paraula clau Extends s'utilitza per heretar d'una (super) classe.

Què és la classe abstracta?

Normalment, les classes abstractes, també conegudes com a classes base abstractes (ABC), no es poden instància (no es pot crear una instància d'aquesta classe). Per tant, les classes abstractes només tenen sentit si el llenguatge de programació admet l'herència (capacitat de crear subclasses a partir d'ampliar una classe). Les classes abstractes solen representar un concepte o entitat abstracte amb implementació parcial o sense implementació. Per tant, les classes abstractes actuen com a classes pares de les quals es deriven les classes fills, de manera que la classe secundaria compartirà les característiques incompletes de la classe pare i es poden afegir funcionalitats per completar-les.

Les classes abstractes poden contenir mètodes abstractes. Les subclasses que estenen una classe abstracta poden implementar aquests mètodes abstractes (heretats). Si la classe fill implementa tots aquests mètodes abstractes, és una classe concreta. Però si no ho fa, la classe fill també es converteix en una classe abstracta. El que vol dir tot això és que, quan el programador designa una classe com a Resum, està dient que la classe estarà incompleta i tindrà elements que hauran de completar les subclasses hereves. Aquesta és una bona manera de crear un contracte entre dos programadors, que simplifica les tasques en el desenvolupament de programari. El programador, que escriu codi per heretar, ha de seguir exactament les definicions del mètode (però, per descomptat, pot tenir la seva pròpia implementació).

Què és l'herència?

L'herència és un concepte orientat a objectes, que permet que noves classes estenguin altres classes. La paraula clau Extends s'utilitza per implementar el concepte d'herència en el llenguatge de programació Java. L'herència proporciona essencialment la reutilització del codi permetent estendre les propietats i el comportament d'una classe existent per una classe recentment definida. Quan una nova subclasse (o classe derivada) amplia una superclasse (o classe pare), aquesta subclasse heretarà tots els atributs i mètodes de la superclasse. La subclasse pot substituir opcionalment el comportament (proporcionar una funcionalitat nova o ampliada als mètodes) heretat de la classe pare. Normalment, una subclasse no pot estendre múltiples superclasses (per exemple, a Java). Per tant, no podeu utilitzar extensions per a l'herència múltiple. Per tenir una herència múltiple, heu d'utilitzar interfícies.

Quina diferència hi ha entre la classe abstracta i l'herència?

Les classes abstractes solen representar un concepte abstracte o una entitat amb una implementació parcial o sense implementació. L'herència permet que noves classes estenguin altres classes. Com que les classes abstractes no es poden instanciar, cal que utilitzeu el concepte d'herència per fer ús de les classes abstractes. En cas contrari, una classe abstracta no serveix de res. Les classes abstractes poden contenir mètodes abstractes i quan la classe s'amplia, tots els mètodes (abstractes i concrets) s'hereten. La classe heretada pot implementar qualsevol o tots els mètodes. Si no s'implementen tots els mètodes abstractes, aquesta classe també es converteix en una classe abstracta. Una classe no pot heretar de més d'una classe abstracta (això no és una qualitat de les classes abstractes per se, sinó una restricció d'herència).

Publicacions relacionades:

Image
Image
Image
Image

Diferència entre la classe abstracta i la classe concreta

Image
Image
Image
Image

Diferència entre virtual i abstracte

Image
Image
Image
Image

Diferència entre la classe abstracta i la interfície

Image
Image
Image
Image

Diferència entre implements i ampliacions

Image
Image
Image
Image

Diferència entre gràfic i arbre

Arxivat a: Programació Etiquetat amb: ABC, resum, Classes base abstractes, Classes abstractes, Classes abstractes, Paraula clau abstracta, Mètodes abstractes, classe concreta, Paraula clau amplia, Herència, Classe heretada, Classe heretada, Java, herència múltiple, conceptes orientats a objectes, classe normal, superclasse

Imatge
Imatge

Sobre l'autor: Indika

Indika, BSc. Eng, MSECE Enginyeria Informàtica, PhD. Informàtica, és professor adjunt i té interessos de recerca en les àrees de bioinformàtica, biologia computacional i processament biomèdic del llenguatge natural.

Comentaris

  1. Imatge
    Imatge

    Jason diu

    30 d'agost de 2017 a les 13:25

    Gràcies per explicar la diferència. Totes les meves preguntes s'han resolt amb això.

    Resposta

  2. Imatge
    Imatge

    Aus diu

    10 de maig de 2019 a les 15:04

    millor resposta al web, el professor no explica cap merda i no té sentit, mf mono. Així expliques els conceptes.

    Resposta

Deixa una resposta Cancel·la la resposta

La vostra adreça electrònica no es publicarà. Els camps obligatoris estan marcats amb

Comentari

Nom

Correu electrònic

Lloc web

Sol·licitar article
Sol·licitar article
Sol·licitar article
Sol·licitar article

Publicacions destacades

Diferència entre el coronavirus i els símptomes del refredat
Diferència entre el coronavirus i els símptomes del refredat

Diferència entre el coronavirus i els símptomes del refredat

Diferència entre coronavirus i SARS
Diferència entre coronavirus i SARS

Diferència entre el coronavirus i el SARS

Diferència entre el coronavirus i la grip
Diferència entre el coronavirus i la grip

Diferència entre el coronavirus i la grip

Diferència entre Coronavirus i Covid 19
Diferència entre Coronavirus i Covid 19

Diferència entre el coronavirus i el Covid 19

Us pot agradar

Diferència entre Husky siberià i Malamute

Diferència entre càlcul AB i BC

Recomanat: