Sleutelverskil – Oorerwing vs koppelvlak in Java
Java is 'n programmeertaal wat deur Sun Microsystems ontwikkel is. Java kan gebruik word om verskeie toepassings te ontwikkel. Dit is 'n multi-paradigma taal wat objekgeoriënteerde, gestruktureerde ens ondersteun. Die grootste voordeel van Java is dat dit objekgeoriënteerde programmering (OOP) ondersteun. Die programmeerder kan klasse en voorwerpe skep. Daar is vier pilare in OOP. Dit is oorerwing, polimorfisme, abstraksie en inkapseling. Oorerwing en koppelvlakke hou verband met OOP. Die belangrikste verskil tussen oorerwing en koppelvlak is dat oorerwing nuwe klasse van bestaande klasse aflei en 'n koppelvlak is om abstrakte klasse en meervoudige oorerwing te implementeer.
Wat is erfenis in Java?
Erfenis kan kodeherbruikbaarheid bereik. Oorerwing help om die eienskappe en metodes van 'n bestaande klas te hergebruik. Die meganisme om nuwe klas af te lei deur ou klas te gebruik, word oorerwing genoem. Die ou klas staan bekend as ouerklas of superklas. Die afgeleide klas word kinderklas of subklas genoem.
Die sintaksis van Java-oorerwing is soos volg.
klas subklasnaam verleng superklasnaam {
veranderlike verklaring;
metodeverklaring;
}
Erfeniskonsep kan verduidelik word deur die volgende voorbeeld te gebruik. Aanvaar dat daar 'n klas genaamd A is soos volg.
publieke klas A{
publieke nietige som(){
System.out.println(“Som”);
}
}
As ons 'n nuwe metode wil byvoeg sonder om die bestaande klas te verander, kan ons dit soos volg doen.
publieke klas B{
public void sub(){
System.out.println(“Sub”);
}
}
Programmeerder kan oorerwing gebruik om klas A-som() te gebruik.
publieke klas B verleng klas A{
public void sub(){
System.out.println(“Sub”);
}
}
In die hooffunksie is dit moontlik om 'n objek van B te skep en sub(), wat aan klas B behoort en som(), wat aan klas A behoort, te roep deur gebruik te maak van oorerwing.
public static void main(String args){
B obj=nuwe B();
obj.sub();
obj.sum();
}
Daar is verskillende tipes erfenis. Hulle is enkel-erfenis, meervoudige erfenis, multi-vlak erfenis en hiërargiese erfenis. In enkeloorerwing is daar een basisklas en een afgeleide klas. In multivlak-oorerwing is daar drie klasse, naamlik basisklas, intermediêre klas en afgeleide klas. Die intermediêre klas erf van die basisklas, en afgeleide klas erf van intermediêre klas. In hiërargiese oorerwing is daar een basisklas en baie afgeleide klasse. Daar is 'n spesiale tipe bekend as Hibriede oorerwing. Dit is 'n kombinasie van twee of meer tipes erfenis.
Figuur 01: Erfenis
In meervoudige oorerwing is daar baie basisklasse en een afgeleide klas. Aanvaar dat klas A en B die basisklasse is. Klas C is die afgeleide klas. As beide A- en B-klasse dieselfde metode het en die programmeerder daardie metode uit die afgeleide klas roep, sal dit 'n dubbelsinnigheidsprobleem veroorsaak. Om twee klasse te erf, kan 'n samestellingtydfout veroorsaak. Daarom word meervoudige oorerwing nie in Java ondersteun nie. 'n Raakvlak kan gebruik word om daardie probleem te oorkom.
Wat is Interface in Java?
Abstraction is 'n proses om die implementeringsbesonderhede weg te steek en slegs die funksies aan die gebruiker te vertoon. Abstraksie kan bereik word deur gebruik te maak van Abstrakte Klasse of Interfaces. 'n Abstrakte metode is 'n metode sonder 'n implementering. 'n Klas met ten minste een abstrakte metode is 'n abstrakte klas. Voorbeeld van 'n abstrakte klas is soos volg.
abstrakte klas A{
abstrakte leemte som();
}
Veronderstel dat daar twee abstrakte klasse as A en B is. Om abstrakte metodes van A en B te implementeer, word 'n nuwe klas C geskep. Dan moet klas C beide A en B uitbrei. Maar meervoudige oorerwing word nie in Java ondersteun nie. Daarom moet koppelvlakke gebruik. Koppelvlakke kan gebruik word om metodes te verklaar, maar dit is nie moontlik om metodes te definieer nie. Dit is nie moontlik om 'n voorwerp te skep deur koppelvlakke te gebruik nie. Klas C moet alle metodes in koppelvlak A en B implementeer.
koppelvlak A{
void sum();
}
koppelvlak B{
void sub();
}
klas C implemente A, B{
publieke nietige som(){
System.out.println(“Opsomming”);
}
public void sub(){
System.out.println(“Aftrekking”);
}
}
Nou, in die hoofprogram is dit moontlik om 'n objek van C te skep en beide metodes te roep.
publieke statiese leemte hoof (string args) {
C obj=nuwe C();
obj.sum();
obj.sub();
}
Dus, koppelvlakke kan gebruik word om veelvuldige oorerwing te implementeer.
Nog 'n gebruik van koppelvlakke is dat dit sekuriteit bied. Verwys na die onderstaande kode.
koppelvlak A {
void sum ();
}
klas B implementeer A {
publieke nietige som () {
System.out.println(“Opsomming”);
}
publieke leemte vermenigvuldig () {
System.out.println(“Vermenigvuldiging”);
}
}
Wanneer 'n voorwerp van B geskep word, is dit moontlik om beide metodes som () en vermenigvuldig () te noem. As die programmeerder die gebruik van vermenigvuldigingsfunksie wil beperk, is dit soos volg moontlik.
public static void main(String args){
A obj=nuwe B();
obj.sum();
}
A obj=nuwe B(); sal 'n voorwerp skep. Dit is van tipe A en die geheue word as B toegeken. Dit is moontlik om sum() te noem, maar kan nie multiply(uitvoer nie). Hierdie beperking word gedoen deur koppelvlakke te gebruik.
Wat is die ooreenkomste tussen oorerwing en koppelvlak in Java?
- Albei konsepte hou verband met objekgeoriënteerde programmering
- Albei verteenwoordig IS-A-verhouding.
Wat is die verskil tussen oorerwing en koppelvlak in Java?
Erfenis vs Interface in Java |
|
Inheritance is 'n OOP-konsep om nuwe klasse van die bestaande klasse af te lei. | Interface is 'n meganisme in OOP om abstraksie en meervoudige oorerwing te implementeer. |
Gebruik | |
Inheritance bied kodeherbruikbaarheid. | Interfaces verskaf abstraksie en meervoudige oorerwing. |
Opsomming – Oorerwing vs Interface in Java
Java is 'n multi-paradigma programmeertaal wat objekgeoriënteerde programmering ondersteun. Oorerwing en koppelvlakke hou verband met objekgeoriënteerde programmering. Die verskil tussen oorerwing en koppelvlak is dat oorerwing is om nuwe klasse van bestaande klasse af te lei en koppelvlakke is om abstrakte klasse en meervoudige oorerwing te implementeer.
Laai die PDF-weergawe van Inheritance vs Interface in Java af
Jy kan die PDF-weergawe van hierdie artikel aflaai en dit vir vanlyn doeleindes gebruik soos per aanhalingsnota. Laai asseblief PDF-weergawe hier af Verskil tussen oorerwing en koppelvlak in Java