Dallimi kryesor – Trashëgimia kundrejt ndërfaqes në Java
Java është një gjuhë programimi e zhvilluar nga Sun Microsystems. Java mund të përdoret për të zhvilluar aplikacione të ndryshme. Është një gjuhë me shumë paradigma e cila mbështet objekte të orientuara, të strukturuara etj. Avantazhi kryesor i Java është se ajo mbështet programimin e orientuar drejt objekteve (OOP). Programuesi mund të krijojë klasa dhe objekte. Ka katër shtylla në OOP. Ato janë trashëgimia, polimorfizmi, abstraksioni dhe kapsulimi. Trashëgimia dhe ndërfaqet janë të lidhura me OOP. Dallimi kryesor midis trashëgimisë dhe ndërfaqes është se trashëgimia është të nxjerrësh klasa të reja nga klasat ekzistuese dhe një ndërfaqe është të zbatojë klasa abstrakte dhe trashëgimi të shumëfishtë.
Çfarë është trashëgimia në Java?
Trashëgimia mund të arrijë ripërdorueshmërinë e kodit. Trashëgimia ndihmon për të ripërdorur atributet dhe metodat e një klase ekzistuese. Mekanizmi i nxjerrjes së klasës së re duke përdorur klasën e vjetër quhet trashëgimi. Klasa e vjetër njihet si klasa prind ose super klasë. Klasa e prejardhur quhet klasa fëmijë ose nënklasë.
Sintaksa e trashëgimisë Java është si më poshtë.
class subclass_name extensions superclass_name {
deklaratë e ndryshueshme;
deklarata e metodës;
}
Koncepti i trashëgimisë mund të shpjegohet duke përdorur shembullin e mëposhtëm. Supozoni se ekziston një klasë e quajtur A si më poshtë.
klasa publike A{
public void sum(){
System.out.println("Sum");
}
}
Nëse duam të shtojmë një metodë të re pa ndryshuar klasën ekzistuese, mund ta bëjmë si më poshtë.
klasa publike B{
public void sub(){
System.out.println("Nën");
}
}
Programuesi mund të përdorë trashëgiminë për të përdorur shumën e klasës A().
klasa publike B shtrihet në klasën A{
public void sub(){
System.out.println("Nën");
}
}
Në funksionin kryesor, është e mundur të krijohet një objekt i B dhe të thirret sub(), e cila i përket klasës B dhe sum(), e cila i përket klasës A duke përdorur trashëgiminë.
public static void main(String args){
B obj=e re B();
obj.sub();
obj.sum();
}
Ka lloje të ndryshme të trashëgimisë. Ato janë trashëgimi e vetme, trashëgimi e shumëfishtë, trashëgimi me shumë nivele dhe trashëgimi hierarkike. Në trashëgiminë e vetme, ekziston një klasë bazë dhe një klasë e prejardhur. Në trashëgiminë me shumë nivele, ekzistojnë tre klasa, përkatësisht klasa bazë, klasa e ndërmjetme dhe klasa e prejardhur. Klasa e ndërmjetme trashëgon nga klasa bazë dhe klasa e prejardhur trashëgon nga klasa e ndërmjetme. Në trashëgiminë hierarkike, ekziston një klasë bazë dhe shumë klasa të prejardhura. Ekziston një lloj i veçantë i njohur si trashëgimi hibride. Është një kombinim i dy ose më shumë llojeve të trashëgimisë.
Figura 01: Trashëgimi
Në trashëgiminë e shumëfishtë ka shumë klasa bazë dhe një klasë të prejardhur. Supozoni se klasa A dhe B janë klasat bazë. Klasa C është klasa e prejardhur. Nëse të dyja klasat A dhe B kanë të njëjtën metodë dhe programuesi e thërret atë metodë nga klasa e derivuar, kjo do të shkaktojë një problem paqartësie. Trashëgimi i dy klasave mund të shkaktojë një gabim në kohën e përpilimit. Prandaj, trashëgimia e shumëfishtë nuk mbështetet në Java. Një ndërfaqe mund të përdoret për të kapërcyer këtë problem.
Çfarë është ndërfaqja në Java?
Abstraksioni është një proces i fshehjes së detajeve të zbatimit dhe shfaqjes së përdoruesit vetëm të funksionaliteteve. Abstraksioni mund të arrihet duke përdorur klasa abstrakte ose ndërfaqe. Një metodë abstrakte është një metodë pa zbatim. Një klasë me të paktën një metodë abstrakte është një klasë abstrakte. Shembull i një klase abstrakte është si më poshtë.
klasa abstrakte A{
abstrakt void sum();
}
Supozojmë se ekzistojnë dy klasa abstrakte si A dhe B. Për të zbatuar metoda abstrakte të A dhe B, krijohet një klasë e re C. Pastaj klasa C duhet të zgjasë si A ashtu edhe B., por trashëgimia e shumëfishtë nuk mbështetet në Java. Prandaj, duhet të përdorni ndërfaqe. Ndërfaqet mund të përdoren për të deklaruar metodat, por nuk është e mundur të përcaktohen metoda. Nuk është e mundur të krijohet një objekt duke përdorur ndërfaqe. Klasa C duhet të zbatojë të gjitha metodat në ndërfaqen A dhe B.
ndërfaqja A{
shuma e pavlefshme();
}
ndërfaqja B{
void sub();
}
klasa C zbaton A, B{
public void sum(){
System.out.println("Përmbledhja");
}
public void sub(){
System.out.println("Zbritja");
}
}
Tani, në programin kryesor është e mundur të krijohet një objekt i C dhe të thirren të dyja metodat.
public static void main (String args) {
C obj=i ri C();
obj.sum();
obj.sub();
}
Pra, ndërfaqet mund të përdoren për të implementuar trashëgimi të shumëfishtë.
Një përdorim tjetër i ndërfaqeve është se ofron siguri. Referojuni kodit më poshtë.
ndërfaqja A {
shuma e pavlefshme ();
}
klasa B zbaton A {
shuma e zbrazët publike () {
System.out.println("Përmbledhja");
}
shumëzimi i zbrazëtisë publike () {
System.out.println("Shumëzimi");
}
}
Kur krijoni një objekt të B, është e mundur që të dyja metodat të quhen shuma () dhe të shumëzohen (). Nëse programuesi dëshiron të kufizojë përdorimin e funksionit të shumëzimit (), është e mundur si më poshtë.
public static void main(String args){
A obj=new B();
obj.sum();
}
A obj=e re B(); do të krijojë një objekt. Është e tipit A dhe memoria ndahet si B. Është e mundur të thirret sum() por nuk mund të ekzekutohet multiply(). Ky kufizim bëhet duke përdorur ndërfaqe.
Cilat janë ngjashmëritë midis trashëgimisë dhe ndërfaqes në Java?
- Të dy konceptet janë të lidhura me programimin e orientuar në objekte
- Të dyja përfaqësojnë marrëdhënien IS-A.
Cili është ndryshimi midis trashëgimisë dhe ndërfaqes në Java?
Trashëgimia kundrejt ndërfaqes në Java |
|
Trashëgimia është një koncept OOP për të nxjerrë klasa të reja nga klasat ekzistuese. | Ndërfaqja është një mekanizëm në OOP për të zbatuar abstraksionin dhe trashëgiminë e shumëfishtë. |
Përdorimi | |
Trashëgimia siguron ripërdorim të kodit. | Ndërfaqet ofrojnë abstraksion dhe trashëgimi të shumëfishtë. |
Përmbledhje – Trashëgimia kundrejt ndërfaqes në Java
Java është një gjuhë programimi me shumë paradigma e cila mbështet programimin e orientuar nga objekti. Trashëgimia dhe ndërfaqet janë të lidhura me programimin e orientuar drejt objektit. Dallimi midis trashëgimisë dhe ndërfaqes është se trashëgimia është të nxjerrësh klasa të reja nga klasat ekzistuese dhe ndërfaqet është të zbatosh klasa abstrakte dhe trashëgimi të shumëfishtë.
Shkarko Versionin PDF të Trashëgimisë kundër Ndërfaqes në Java
Mund të shkarkoni versionin PDF të këtij artikulli dhe ta përdorni për qëllime jashtë linje sipas shënimit të citimit. Ju lutemi shkarkoni versionin PDF këtu Dallimi midis trashëgimisë dhe ndërfaqes në Java