Mahalagang Pagkakaiba – Klase vs Interface
Ang Object-Oriented Programming (OOP) ay isang karaniwang paradigm sa pagbuo ng software. Nakakatulong itong magdala ng mga real-world na sitwasyon sa programming gamit ang mga klase at bagay. Ang isang klase ay isang blueprint upang lumikha ng isang bagay. Ang programmer ay maaaring lumikha ng isang klase na may mga katangian at pamamaraan. Ang isang mag-aaral at guro ay bagay. Ang paglikha ng isang bagay ay kilala bilang instantiation. Gumagamit din ang OOP ng mga interface. Ang mga interface at klase ay maaaring mukhang magkatulad, ngunit mayroon silang pagkakaiba. Tinatalakay ng artikulong ito ang pagkakaiba sa pagitan ng isang klase at isang interface. Ang pangunahing pagkakaiba sa pagitan ng isang klase at isang interface ay ang isang klase ay isang uri ng sanggunian na isang blueprint upang i-instantiate ang isang bagay habang ang interface ay isang uri ng sanggunian na hindi magagamit upang i-instantiate ang isang bagay.
Ano ang Klase?
Sa OOP, ang lahat ay itinuturing na isang bagay. Hindi posible na lumikha ng isang bagay nang walang klase. Ang isang klase ay isang blueprint upang lumikha ng isang bagay. Kapag nagtatayo ng bahay, iginuhit ng arkitekto ang plano. Ang plano ay katulad ng isang klase. Ang bahay ay katulad ng bagay. Ang klase ay ang plano upang bumuo ng isang bagay. Ang isang bagay ay kung ano ang nilikha gamit ang klase.
Ang klase ay naglalaman ng mga katangian at pamamaraan. Ang isang mag-aaral ay maaaring magkaroon ng mga katangian tulad ng pangalan, grado, index number. Ang isang mag-aaral ay maaaring magkaroon ng mga pamamaraan tulad ng pagbabasa, paglalakad, pag-aaral. Ang isang klase ay nilikha gamit ang mga kinakailangang katangian at pamamaraan.
Ang syntax para sa paggawa ng klase sa maraming programming language ay ang mga sumusunod. Nilikha ito gamit ang klase ng keyword.
class_class_name {
// property
//paraan
}
Ang mga programming language gaya ng C at Java ay sumusunod sa isang katulad na syntax upang lumikha ng object gamit ang isang klase. Ipagpalagay na ang pangalan ng klase ay Student.
Mag-aaral s1=bagong Mag-aaral ();
Itong s1 ang object. Ang "bagong" keyword ay ginagamit upang maglaan ng memorya para sa mga katangian. Ang isang klase ay mayroon ding constructor para mag-initialize ng mga property o variable.
Ang mga miyembro ng klase gaya ng mga property at pamamaraan ay may mga modifier ng access. Inilalarawan ng mga access specifier ang accessibility at visibility ng mga miyembrong iyon sa ibang mga klase. Ang mga miyembro ng klase ay maaaring magkaroon ng access specifier tulad ng pampubliko, pribado at protektado. Ang mga pampublikong miyembro ay naa-access ng ibang mga klase. Ang mga pribadong miyembro ay maa-access lamang sa klase. Maa-access ang mga protektadong miyembro sa loob ng klase at mga nauugnay na subclass.
Ano ang Interface?
Ang Abstraction ay isang haligi ng Object Oriented programming. Ito ay para itago ang mga detalye ng pagpapatupad at ipakita ang functionality sa user. Nakamit ang abstraction gamit ang mga abstract na klase at interface. Ang abstract na pamamaraan ay walang pagpapatupad. Ang isang klase na naglalaman ng hindi bababa sa isang abstract na pamamaraan ay tinatawag na isang abstract na klase.
Kapag mayroong dalawang abstract na klase, ang mga pamamaraang idineklara sa mga klaseng iyon ay dapat ipatupad. Isang bagong klase ang ginagamit upang ipatupad ang mga pamamaraang iyon. Kung ang parehong mga klase ay may parehong paraan, maaari itong magdulot ng problema sa kalabuan. Samakatuwid, may interface ang mga programming language gaya ng Java at C.
Ang mga interface ay naglalaman lamang ng deklarasyon ng mga pamamaraan. Walang paraan ng pagpapatupad. Gayundin, hindi maaaring gamitin ang mga interface upang lumikha ng mga bagay. Ginagamit ang mga ito para suportahan ang maraming inheritance at para ma-secure ang code.
Ang syntax ng Interface ay ang mga sumusunod. Gamitin ang interface ng keyword na “interface”.
interface interface_name{
type method1(parameter_list);
type method2(parameter_list);
}
Ayon sa itaas, ang mga interface lang ang may deklarasyon. Walang definition. Kaya, ang mga interface ay hindi maaaring mag-instantiate ng mga bagay. Nagbibigay lamang ito ng abstract view kung ano ang interface. Ang mga pamamaraan na ipinahayag sa interface ay maaaring ipatupad ng isa o maraming mga klase. Ginagamit ng isang klase ang keyword na "implement" upang ipatupad ang isang interface. Sumangguni sa ibaba ng halimbawang nakasulat gamit ang Java.
Figure 01: Programa gamit ang Mga Interface
Ayon sa programa sa itaas, ang A at B ay mga interface. Ang Interface A ay may deklarasyon ng pamamaraan na siyang sum(). Ang Interface B ay may method na deklarasyon sub(). Ang Class C ay nagpapatupad ng parehong mga interface na A at B. Samakatuwid, tinukoy ng class C ang parehong sum() at sub() na mga pamamaraan. Pagkatapos gawin ang object ng uri C, posibleng tawagan ang parehong pamamaraan sum() at sub().
Ang mga pamamaraan na idineklara sa loob ng interface ay dapat palaging pampubliko dahil tinutukoy ng mga nagpapatupad na klase ang mga ito. Ang isang interface ay maaari ding magmana mula sa isa pang interface.
Ano ang Pagkakatulad sa pagitan ng Klase at Interface?
- Parehong mga uri ng sanggunian.
- Parehong nauugnay sa Object-Oriented Programming.
Ano ang Pagkakaiba sa pagitan ng Klase at Interface?
Class vs Interface |
|
Ang klase ay isang uri ng sanggunian na isang blueprint para gumawa ng object. | Ang interface ay isang uri ng sanggunian na hindi ma-instantiate. |
Object Instantiation | |
Ginagamit ang isang klase upang i-instantiate ang isang bagay. | Hindi maaaring i-instantiate ang isang interface dahil hindi magawa ng mga pamamaraan ang anumang pagkilos. |
Constructor | |
Ang isang klase ay naglalaman ng isang constructor, upang simulan ang mga variable. | Ang isang interface ay hindi naglalaman ng isang constructor dahil ang mga ito ay halos walang mga variable upang simulan. |
Keyword | |
Gumagamit ang isang klase ng keyword na “class”. | Gumagamit ang isang interface ng keyword na “interface”. |
Access Specifier | |
Ang mga miyembro ng klase ay maaaring pribado, pampubliko at protektado. | Ang mga miyembro ng interface ay dapat palaging pampubliko dahil tinutukoy sila ng mga nagpapatupad na klase. |
Buod – Klase vs Interface
Mga Klase at Interface ay malawakang ginagamit sa Object Oriented Programming. Ang pagkakaiba sa pagitan ng isang klase at isang interface ay ang isang klase ay isang uri ng sanggunian na isang blueprint upang i-instantiate ang isang bagay at ang interface ay isang uri ng sanggunian na hindi maaaring gamitin upang i-instantiate ang isang bagay. Ang isang klase ay maaaring magpatupad ng maraming mga interface. Ngunit maaari lamang itong mag-extend ng isang superclass. Sa interface ay maaaring magmana ng maraming mga interface ngunit hindi maaaring magkaroon ng isang pagpapatupad. Parehong may kanya-kanyang kahalagahan. Maaaring gamitin ng programmer ang mga ito ayon sa pagbuo ng software.
I-download ang PDF Class vs Interface
Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa mga offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito Pagkakaiba sa pagitan ng Klase at Interface