Rozdíl mezi abstraktní třídou a dědičností

Obsah:

Rozdíl mezi abstraktní třídou a dědičností
Rozdíl mezi abstraktní třídou a dědičností

Video: Rozdíl mezi abstraktní třídou a dědičností

Video: Rozdíl mezi abstraktní třídou a dědičností
Video: 2. Jak se naučit programovat - jaký je rozdíl mezi HTML, CSS a Javascriptem 2024, Červenec
Anonim

Abstraktní třída vs dědičnost

Abstraktní třída a dědičnost jsou dva důležité objektově orientované koncepty, které se nacházejí v mnoha objektově orientovaných programovacích jazycích, jako je Java. Abstraktní třídu lze považovat za abstraktní verzi běžné (konkrétní) třídy, zatímco dědičnost umožňuje novým třídám rozšiřovat další třídy. Abstraktní třída je třída, kterou nelze inicializovat, ale lze ji rozšířit. Abstraktní třídy jsou tedy smysluplné pouze v případě, že programovací jazyk podporuje dědičnost. V Javě jsou třídy Abstract deklarovány pomocí klíčového slova Abstract, zatímco klíčové slovo Extends se používá pro dědění z (super) třídy.

Co je abstraktní třída?

Abstraktní třídy, známé také jako abstraktní základní třídy (ABC), obvykle nelze vytvořit instanci (nelze vytvořit instanci této třídy). Abstraktní třídy jsou tedy smysluplné pouze v případě, že programovací jazyk podporuje dědičnost (schopnost vytvářet podtřídy z rozšíření třídy). Abstraktní třídy obvykle představují abstraktní koncept nebo entitu s částečnou nebo žádnou implementací. Abstraktní třídy proto fungují jako nadřazené třídy, z nichž jsou odvozeny podřízené třídy, takže podřízená třída bude sdílet neúplné vlastnosti nadřazené třídy a lze přidat funkce, které je doplní.

Abstraktní třídy mohou obsahovat abstraktní metody. Podtřídy rozšiřující abstraktní třídu mohou implementovat tyto (zděděné) abstraktní metody. Pokud podřízená třída implementuje všechny takové abstraktní metody, jedná se o konkrétní třídu. Ale pokud tomu tak není, stane se podřízená třída také abstraktní třídou. To vše znamená, že když programátorka nominuje třídu jako Abstrakt, říká, že třída bude neúplná a bude mít prvky, které je třeba doplnit dědícími podtřídami. Je to pěkný způsob, jak vytvořit smlouvu mezi dvěma programátory, což zjednodušuje úkoly při vývoji softwaru. Programátor, který píše kód ke zdědění, musí přesně dodržovat definice metod (ale samozřejmě může mít vlastní implementaci).

Co je dědičnost?

Dědičnost je objektově orientovaný koncept, který umožňuje novým třídám rozšiřovat další třídy. Klíčové slovo Extends se používá k implementaci konceptu dědičnosti v programovacím jazyce Java. Dědičnost v podstatě zajišťuje opětovné použití kódu tím, že umožňuje rozšíření vlastností a chování existující třídy o nově definovanou třídu. Když nová podtřída (nebo odvozená třída) rozšiřuje nadtřídu (nebo nadřazenou třídu), tato podtřída zdědí všechny atributy a metody nadtřídy. Podtřída může volitelně přepsat chování (poskytnout metodám novou nebo rozšířenou funkčnost) zděděné od nadřazené třídy. Typicky podtřída nemůže rozšířit více supertříd (např. v Javě). Rozšíření proto nelze použít pro vícenásobnou dědičnost. Abyste získali vícenásobnou dědičnost, musíte použít rozhraní.

Jaký je rozdíl mezi abstraktní třídou a dědičností?

Abstraktní třídy obvykle představují abstraktní koncept nebo entitu s částečnou nebo žádnou implementací. Dědičnost umožňuje novým třídám rozšířit další třídy. Protože abstraktní třídy nelze konkretizovat, musíte použít koncept dědičnosti, abyste mohli používat abstraktní třídy. Jinak abstraktní třída nemá žádné využití. Abstraktní třídy mohou obsahovat abstraktní metody a když je třída rozšířena, zdědí se všechny metody (abstraktní i konkrétní). Zděděná třída může implementovat kteroukoli nebo všechny metody. Pokud nejsou implementovány všechny abstraktní metody, stane se tato třída také abstraktní třídou. Třída nemůže dědit z více než jedné abstraktní třídy (toto není kvalita abstraktních tříd jako taková, ale spíše omezení dědičnosti).

Související příspěvky:

Image
Image
Image
Image

Rozdíl mezi abstraktní třídou a konkrétní třídou

Image
Image
Image
Image

Rozdíl mezi virtuálním a abstraktním

Image
Image
Image
Image

Rozdíl mezi abstraktní třídou a rozhraním

Image
Image
Image
Image

Rozdíl mezi Implements a Extends

Image
Image
Image
Image

Rozdíl mezi grafem a stromem

Filed Under: Programming Tagged with: ABC, abstract, Abstract Base Classes, Abstract class, Abstract Class, Abstract keyword, Abstract Methods, Conkrétní třída, Klíčové slovo Extends, Dědičnost, Třída dědičnosti, zděděná třída, Java, vícenásobná dědičnost, objektově orientované koncepty, běžná třída, super třída

obraz
obraz

O autorovi: Indika

Indika, BSc. Eng, MSECE Computer Engineering, PhD. Počítačová věda, je odborným asistentem a má výzkumné zájmy v oblastech bioinformatiky, výpočetní biologie a biomedicínského zpracování přirozeného jazyka.

Komentáře

  1. obraz
    obraz

    Jason říká

    30. srpna 2017 v 13:25

    Děkujeme za vysvětlení rozdílu. Všechny mé otázky byly tímto vyřešeny.

    Odpovědět

  2. obraz
    obraz

    Aus říká

    10. května 2019 v 15:04

    nejlepší odpověď na webu, Učitel nevysvětluje sračky a nedává to smysl, mono tón mf. Takto vysvětlujete pojmy.

    Odpovědět

Zanechat odpověď Zrušit odpověď

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena

Komentář

Jméno

E-mail

Web

Vyžádejte si článek
Vyžádejte si článek
Vyžádejte si článek
Vyžádejte si článek

Vybrané příspěvky

Rozdíl mezi koronavirem a příznaky nachlazení
Rozdíl mezi koronavirem a příznaky nachlazení

Rozdíl mezi koronavirem a příznaky nachlazení

Rozdíl mezi koronavirem a SARS
Rozdíl mezi koronavirem a SARS

Rozdíl mezi koronavirem a SARS

Rozdíl mezi koronavirem a chřipkou
Rozdíl mezi koronavirem a chřipkou

Rozdíl mezi koronavirem a chřipkou

Rozdíl mezi koronavirem a Covidem 19
Rozdíl mezi koronavirem a Covidem 19

Rozdíl mezi Coronavirem a Covid 19

Může se vám líbit

Rozdíl mezi sibiřským huskym a malamutem

Rozdíl mezi Calculus AB a BC

Doporučuje: