Abstract Class vs Inheritance
Ang Abstract class at Inheritance ay dalawang mahalagang object oriented na konsepto na makikita sa maraming object oriented programming language tulad ng Java. Ang abstract na klase ay maaaring ituring bilang abstract na bersyon ng isang regular (kongkreto) na klase, habang ang Inheritance ay nagbibigay-daan sa mga bagong klase na palawigin ang ibang mga klase. Ang abstract na klase ay isang klase na hindi maaaring simulan ngunit maaaring palawigin. Kaya, makabuluhan lamang ang mga Abstract na klase kung sinusuportahan ng programming language ang pamana. Sa Java, ang mga Abstract na klase ay idineklara gamit ang Abstract na keyword, habang ang Extends na keyword ay ginagamit para sa pagmamana mula sa isang (super) na klase.
Ano ang Abstract Class?
Karaniwan, ang mga Abstract na klase, na kilala rin bilang Abstract Base Classes (ABC), ay hindi maaaring i-instantiate (isang instance ng klase na iyon ay hindi maaaring gawin). Kaya, ang mga Abstract na klase ay makabuluhan lamang kung sinusuportahan ng programming language ang mana (kakayahang lumikha ng mga subclass mula sa pagpapalawak ng isang klase). Ang mga abstract na klase ay karaniwang kumakatawan sa isang abstract na konsepto o entity na may bahagyang o walang pagpapatupad. Samakatuwid, ang mga Abstract na klase ay gumaganap bilang mga parent class kung saan hinango ang mga child class para maibahagi ng child class ang mga hindi kumpletong feature ng parent class at maidaragdag ang functionality para makumpleto ang mga ito.
Ang mga abstract na klase ay maaaring maglaman ng mga Abstract na pamamaraan. Ang mga subclass na nagpapalawak ng abstract na klase ay maaaring magpatupad ng mga (minana) na pamamaraang Abstract na ito. Kung ang klase ng bata ay nagpapatupad ng lahat ng mga pamamaraang Abstract, ito ay isang kongkretong klase. Ngunit kung hindi, ang klase ng bata ay magiging isang Abstract na klase. Ang ibig sabihin ng lahat ng ito ay, kapag ang programmer ay nag-nominate ng isang klase bilang isang Abstract, sinasabi niya na ang klase ay hindi kumpleto at magkakaroon ito ng mga elemento na kailangang kumpletuhin ng mga namamanang subclass. Ito ay isang magandang paraan upang lumikha ng isang kontrata sa pagitan ng dalawang programmer, na pinapasimple ang mga gawain sa pagbuo ng software. Ang programmer, na nagsusulat ng code upang mamana, ay kailangang sundin nang eksakto ang mga kahulugan ng pamamaraan (ngunit siyempre ay maaaring magkaroon ng sarili niyang pagpapatupad).
Ano ang Mana?
Ang Inheritance ay isang object oriented na konsepto, na nagbibigay-daan sa mga bagong klase na palawigin ang iba pang mga klase. Ang Extends keyword ay ginagamit upang ipatupad ang konsepto ng inheritance sa Java programming language. Ang inheritance ay mahalagang nagbibigay ng muling paggamit ng code sa pamamagitan ng pagpapahintulot sa pagpapalawak ng mga katangian at pag-uugali ng isang umiiral na klase ng isang bagong tinukoy na klase. Kapag ang isang bagong subclass (o derived class) ay nagpalawak ng isang super class (o parent class) na ang subclass ay magmamana ng lahat ng attribute at method ng super class. Maaaring opsyonal na i-override ng subclass ang gawi (magbigay ng bago o pinahabang functionality sa mga pamamaraan) na minana mula sa parent class. Karaniwan, ang isang subclass ay hindi maaaring mag-extend ng maramihang mga super class (hal. sa Java). Samakatuwid, hindi ka maaaring gumamit ng mga extend para sa maramihang mana. Upang magkaroon ng maraming inheritance, kailangan mong gumamit ng mga interface.
Ano ang pagkakaiba ng Abstract Class at Inheritance?
Ang mga abstract na klase ay karaniwang kumakatawan sa abstract na konsepto o isang entity na may bahagyang o walang pagpapatupad. Binibigyang-daan ng inheritance ang mga bagong klase na palawigin ang ibang mga klase. Dahil, ang mga Abstract na klase ay hindi maaaring ma-instantiate, kailangan mong gamitin ang konsepto ng mana para magamit ang mga Abstract na klase. Kung hindi, walang silbi ang isang Abstract na klase. Ang mga abstract na klase ay maaaring maglaman ng mga Abstract na pamamaraan at kapag ang klase ay pinalawig, ang lahat ng mga pamamaraan (Abstract at kongkreto) ay minana. Ang minanang klase ay maaaring magpatupad ng anuman o lahat ng mga pamamaraan. Kung ang lahat ng mga pamamaraan ng Abstract ay hindi ipinatupad, ang klase na iyon ay magiging isang Abstract na klase. Ang isang klase ay hindi maaaring magmana mula sa higit sa isang Abstract na klase (ito ay hindi isang kalidad ng Abstract na mga klase per se, ngunit sa halip ay isang paghihigpit ng mana).
Mga kaugnay na post:
Pagkakaiba sa pagitan ng Abstract Class at Concrete Class
Pagkakaiba sa pagitan ng Virtual at Abstract
Pagkakaiba sa pagitan ng Abstract na Klase at Interface
Pagkakaiba sa pagitan ng Mga Implement at Extend
Pagkakaiba sa pagitan ng Graph at Tree
Filed Under: Programming Tagged With: ABC, abstract, Abstract Base Classes, Abstract class, Abstract classes, Abstract na keyword, Abstract method, concrete class, Extends keyword, Inheritance, Inheritance class, inheritance class, Java, multiple inheritance, mga object oriented na konsepto, regular na klase, super class
Tungkol sa May-akda: Indika
Indika, BSc. Eng, MSECE Computer Engineering, PhD. Computer Science, ay isang Assistant Professor at may mga interes sa pananaliksik sa mga larangan ng Bioinformatics, Computational Biology, at Biomedical Natural Language Processing.
Mga Komento
-
sabi ni Jason
Agosto 30, 2017 nang 1:25 pm
Salamat sa pagpapaliwanag ng pagkakaiba. Lahat ng tanong ko ay nalutas na nito.
Reply
-
sabi ni Aus
Mayo 10, 2019 nang 3:04 pm
pinakamahusay na sagot sa web, Hindi ipaliwanag ng guro ang shit at walang katuturan, mono tone mf. Ganito mo ipaliwanag ang mga konsepto.
Reply
Mag-iwan ng Tugon Kanselahin ang tugon
Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan
Komento
Pangalan
Website