Pagkakaiba sa pagitan ng Abstract na Klase at Interface

Pagkakaiba sa pagitan ng Abstract na Klase at Interface
Pagkakaiba sa pagitan ng Abstract na Klase at Interface

Video: Pagkakaiba sa pagitan ng Abstract na Klase at Interface

Video: Pagkakaiba sa pagitan ng Abstract na Klase at Interface
Video: You won't Believe what Happened after Blinken's China Visit. 2024, Hulyo
Anonim

Abstract na Klase vs Interface

Ang Abstract na klase at Interface ay dalawang object oriented construct na makikita sa maraming object oriented programming language tulad ng Java. Ang abstract na klase ay maaaring ituring bilang isang abstract na bersyon ng isang regular (kongkreto) na klase, habang ang isang interface ay maaaring ituring bilang isang paraan ng pagpapatupad ng isang kontrata. Ang abstract na klase ay isang klase na hindi maaaring simulan ngunit maaaring palawigin. Ang interface ay isang uri na kailangang ipatupad ng ibang mga klase. Sa Java, ang mga Abstract na klase ay idineklara gamit ang Abstract na keyword, habang ang interface na keyword ay ginagamit upang tukuyin ang isang interface.

Ano ang Abstract na Klase?

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 Interface?

Ang interface ay isang abstract na uri na ginagamit upang tukuyin ang isang kontrata na dapat ipatupad ng mga klase, na nagpapatupad ng interface na iyon. Ang keyword ng interface ay ginagamit upang tukuyin ang isang interface at ang Implements na keyword ay ginagamit para sa pagpapatupad ng isang interface ng isang klase (sa Java programming language). Karaniwan, ang isang interface ay maglalaman lamang ng mga lagda ng pamamaraan at patuloy na deklarasyon. Ang anumang interface na nagpapatupad ng isang partikular na interface ay dapat magpatupad ng lahat ng mga pamamaraan na tinukoy sa interface, o dapat na ideklara bilang isang abstract na klase. Sa Java, ang uri ng isang object reference ay maaaring tukuyin bilang isang uri ng interface. Ngunit ang bagay na iyon ay dapat na alinman sa null o dapat magkaroon ng isang bagay ng isang klase, na nagpapatupad ng partikular na interface. Gamit ang Implements na keyword sa Java, maaari kang magpatupad ng maraming interface sa isang klase.

Ano ang pagkakaiba ng Abstract na Klase at Interface?

Ang mga abstract na klase ay karaniwang kumakatawan sa abstract na konsepto o isang entity na may bahagyang o walang pagpapatupad. Sa kabilang banda, ang isang interface ay isang abstract na uri na ginagamit upang tukuyin ang isang kontrata na dapat ipatupad ng mga klase. Ang mga abstract na klase ay dapat na minana (o pinalawig), habang ang mga interface ay dapat ipatupad. Ang mga abstract na klase ay maaaring maglaman ng mga abstract na pamamaraan, samantalang ang isang interface ay dapat lamang maglaman ng mga abstract na pamamaraan. Ang mga abstract na klase ay maaaring maglaman ng anumang mga variable, ngunit ang mga Interface ay maaari lamang tukuyin ang mga constant. Ang isang klase ay hindi maaaring magmana mula sa higit sa isang abstract na klase ngunit maaaring magpatupad ng maramihang mga interface. Ang isang Interface ay hindi maaaring magpatupad ng isa pang interface. Gayunpaman, ang isang interface ay maaaring mag-extend ng isang klase.

Inirerekumendang: