Erinevus Java pärandi ja liidese vahel

Sisukord:

Erinevus Java pärandi ja liidese vahel
Erinevus Java pärandi ja liidese vahel

Video: Erinevus Java pärandi ja liidese vahel

Video: Erinevus Java pärandi ja liidese vahel
Video: Android 101 by Fred Widjaja 2024, November
Anonim

Põhierinevus – pärand vs liides Javas

Java on Sun Microsystemsi poolt välja töötatud programmeerimiskeel. Java abil saab arendada erinevaid rakendusi. See on mitme paradigma keel, mis toetab objektorienteeritud, struktureeritud jne. Java peamine eelis on see, et see toetab objektorienteeritud programmeerimist (OOP). Programmeerija saab luua klasse ja objekte. OOP-is on neli sammast. Need on pärimine, polümorfism, abstraktsioon ja kapseldamine. Pärand ja liidesed on seotud OOP-iga. Peamine erinevus pärimise ja liidese vahel on see, et pärimine on uute klasside tuletamine olemasolevatest klassidest ja liides on abstraktsete klasside ja mitme pärimise rakendamine.

Mis on Javas pärimine?

Pärimine võib saavutada koodi taaskasutatavuse. Pärimine aitab taaskasutada olemasoleva klassi atribuute ja meetodeid. Uue klassi tuletamise mehhanismi vana klassi abil nimetatakse pärimiseks. Vana klassi tuntakse vanemklassina või superklassina. Tuletatud klassi nimetatakse alamklassiks või alamklassiks.

Java pärimise süntaks on järgmine.

class subclass_name laiendab superclass_name {

muutuja deklaratsioon;

meetodi deklaratsioon;

}

Pärimise kontseptsiooni saab selgitada järgmise näite abil. Oletame, et on olemas klass nimega A järgmiselt.

avalik klass A{

public void summa(){

System.out.println(“Summa”);

}

}

Kui tahame lisada uue meetodi olemasolevat klassi muutmata, saame seda teha järgmiselt.

avalik klass B{

public void sub(){

System.out.println(“Sub”);

}

}

Programmeerija saab klassi A summa() kasutamiseks kasutada pärimist.

avalik klass B laiendab klassi A{

public void sub(){

System.out.println(“Sub”);

}

}

Põhifunktsioonis on võimalik pärimise abil luua B-objekti ja kutsuda välja sub(), mis kuulub klassi B ja sum(), mis kuulub klassi A.

public static void main(String args){

B obj=uus B();

obj.sub();

obj.sum();

}

Pärimist on erinevat tüüpi. Need on üksikpärimine, mitmikpärimine, mitmetasandiline pärand ja hierarhiline pärand. Ühes pärandis on üks põhiklass ja üks tuletatud klass. Mitmetasandilises pärandis on kolm klassi, nimelt põhiklass, vaheklass ja tuletatud klass. Vaheklass pärib baasklassist ja tuletatud klass vaheklassist. Hierarhilises pärandis on üks põhiklass ja palju tuletatud klasse. On olemas spetsiaalne tüüp, mida nimetatakse hübriidseks pärimiseks. See on kahe või enama päranditüübi kombinatsioon.

Erinevus Java pärandi ja liidese vahel
Erinevus Java pärandi ja liidese vahel

Joonis 01: Pärand

Mitme pärimise korral on palju põhiklasse ja üks tuletatud klass. Oletame, et klass A ja B on baasklassid. Klass C on tuletatud klass. Kui nii A- kui ka B-klassil on sama meetod ja programmeerija kutsub selle meetodi tuletatud klassist, põhjustab see ebaselguse probleemi. Kahe klassi pärimine võib põhjustada kompileerimisaja tõrke. Seetõttu ei toetata Java mitmekordset pärandit. Selle probleemi lahendamiseks saab kasutada liidest.

Mis on Java liides?

Abstraktsioon on juurutamise üksikasjade peitmise ja kasutajale ainult funktsioonide kuvamise protsess. Abstraktsiooni saab saavutada abstraktsete klasside või liideste abil. Abstraktne meetod on meetod, millel puudub teostus. Klass, millel on vähem alt üks abstraktne meetod, on abstraktne klass. Abstraktse klassi näide on järgmine.

abstraktne klass A{

abstract void summa();

}

Oletame, et on kaks abstraktset klassi A ja B. Abstraktsete meetodite A ja B rakendamiseks luuakse uus klass C. Siis peaks klass C laiendama nii A-d kui ka B-d. Kuid Java-s ei toetata mitut pärandit. Seetõttu tuleks kasutada liideseid. Meetodite deklareerimiseks saab kasutada liideseid, kuid meetodeid pole võimalik defineerida. Liideste abil pole objekti võimalik luua. Klass C peaks rakendama kõiki liidese A ja B meetodeid.

liides A{

void summa();

}

liides B{

void sub();

}

C-klassi tööseadmed A, B{

public void summa(){

System.out.println(“Summeerimine”);

}

public void sub(){

System.out.println("lahutamine");

}

}

Nüüd on põhiprogrammis võimalik luua C-objekt ja kutsuda mõlemat meetodit.

public static void main (String args) {

C obj=uus C();

obj.sum();

obj.sub();

}

Niisiis, liideseid saab kasutada mitme pärimise rakendamiseks.

Liideste teine kasutusvõimalus on see, et need pakuvad turvalisust. Vaadake allolevat koodi.

liides A {

kehtetu summa ();

}

klassi B rakendab A {

avalik tühisumma () {

System.out.println(“Summeerimine”);

}

avalik tühine korrutis () {

System.out.println("Korrutamine");

}

}

B objekti loomisel on võimalik kutsuda mõlemat meetodit summa () ja korrutada (). Kui programmeerija soovib piirata korrutamisfunktsiooni () kasutamist, on see võimalik järgmiselt.

public static void main(String args){

A obj=uus B();

obj.sum();

}

A obj=uus B(); loob objekti. See on A-tüüpi ja mälu on eraldatud kui B. On võimalik kutsuda sum(), kuid ei saa käivitada kordamine(). See piirang tehakse liideste abil.

Millised on Java pärimise ja liidese sarnasused?

  • Mõlemad mõisted on seotud objektorienteeritud programmeerimisega
  • Mõlemad esindavad IS-A suhet.

Mis vahe on Java pärandil ja liidesel?

Pärimine vs liides Javas

Pärimine on OOP kontseptsioon olemasolevatest klassidest uute klasside tuletamiseks. Liides on OOP-i mehhanism abstraktsiooni ja mitmekordse pärimise rakendamiseks.
Kasutus
Pärimine tagab koodi korduvkasutatavuse. Liidesed pakuvad abstraktsiooni ja mitmekordset pärimist.

Kokkuvõte – pärand vs liides Javas

Java on mitme paradigmaga programmeerimiskeel, mis toetab objektorienteeritud programmeerimist. Pärand ja liidesed on seotud objektorienteeritud programmeerimisega. Pärimise ja liidese erinevus seisneb selles, et pärimine on uute klasside tuletamine olemasolevatest klassidest ja liidesed on abstraktsete klasside ja mitme pärimise rakendamine.

Laadige alla PDF-versioon Pärand vs liides Javas

Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit. Erinevus pärimise ja liidese vahel Java-s

Soovitan: