Rekenaars, Programmering
Elemente van Java voorwerp model: 'n abstrakte klas, 'n koppelvlak
Die hoofgedagte van die abstrakte klas is vervat in die volgende stellings: soms vereis geen kookklasse, en in "nat" vorm. Soos spasies kan nie direk gebruik word (instansieer).
Wat is 'n abstrakte klas in Java
Oorweeg 'n ander voorbeeld. Daar is 'n Java abstrakte klas Kalender in Java.util pakket. Dit maak nie 'n spesifieke kalender, wat gebruik word, byvoorbeeld, in die Wes-en Oos-Europa, China, Noord-Korea, Thailand, ens implementeer Maar dit het nie baie nuttige funksies, soos die toevoeging van 'n paar dae na 'n spesifieke datum: .. Hierdie funksies word vereis vir enige kalender van implementering. Dit is onmoontlik om 'n afskrif van die abstrakte klas produseer.
Abstrakte klasse, abstrakte Java metodes
Veronderstel jy wil veelvuldige grafiese elemente, bv geometriese vorms te ontwikkel: .. 'n sirkel, reghoek, ster, ens En daar is 'n houer wat hulle trek. Elke komponent van die voorkoms is anders, so die toepaslike metode (selfs al is dit verf genoem) is verskillend geïmplementeer. Maar elke komponent het baie ooreenkomste: .. Die figuur moet in die boks ingesluit mag 'n kleur het sigbare en onsigbare, ens Met ander woorde te wees, moet jy 'n ouer klas te skep vir al hierdie figure, waar elke komponent van die algemene eienskappe sal besit.
As 'n klas het abstrakte metodes, die klas is abstrakte. Voor die woord klas sit die navraag abstrakte, die titel van die metode - te. Na afloop van die titel van so 'n metode is wat nodig is om 'n kommapunt sit. In Java, kan 'n abstrakte klas nie afskrifte produseer. As ons wil hê om hul skepping te verbied, selfs al is daar geen abstrakte metodes van die klas, kan die klas abstrakte verklaar. Maar as die klas het ten minste een abstrakte metode, moet die klas abstrakte wees. Dit is onmoontlik om die klas was en abstrakte is, en finale, en ook die metode. Die metode kan nie abstrakte, private, statiese, inheemse wees. Om af oorerf mens kan nie-abstrakte verklaar en instansieer, moet hulle al abstrakte metodes van die ouer te implementeer. Die klas self kan sy abstrakte metodes gebruik.
byvoorbeeld:
- abstrakte klas AClass {
- openbare abstrakte leemte metode (int a) ;
- }
- klas BClass strek AClass {
- openbare leemte metode (int a) {
- // liggaam
- }
Toegelaat veranderlikes soos abstrakte klas. Hulle kan verwys na 'n nie-abstrakte kind van daardie klas of nul.
Koppelvlakke in Java - 'n alternatief vir verskeie erfenis
In Java, is daar geen meer erfenis, want dan is daar sekere probleme. A klas kan nie erf van verskeie klasse. Maar hy kan verskeie koppelvlakke implementeer.
Java koppelvlakke en abstrakte klasse - die konsepte is soortgelyk, maar nie identies. Die koppelvlak kan verklaar word as openbare, dan is dit beskikbaar vir almal, of jy kan die wysiger openbare uitlaat, dan is die koppelvlak is slegs beskikbaar binne die pakket. Abstrakte navraag is nie nodig nie, omdat die koppelvlak en so is abstrakte, maar jy kan spesifiseer.
'N koppelvlak verklaring
Dit begin met 'n kop, en mag eers na die navraag publiek, dan - woord koppelvlak. Dan kan daar 'n woord strek en oordrag koppelvlakke, waaruit geërf hierdie. Dit is nie toegelaat om te herhaal, en dit is onmoontlik om 'n sikliese verhouding van die erfenis verhouding te vorm. Dan kom die koppelvlak liggaam, ingesluit in krullerige draadjies. In die liggaam van die koppelvlak elemente verklaar: Field konstantes en abstrakte metodes. Alle velde is publiek finale statiese - al hierdie wysigers is nie nodig nie. Al die metodes word beskou as openbare abstrakte wees - hierdie wysigers ook kan gespesifiseer word. Nou, genoeg gesê oor die verskil tussen 'n abstrakte klas van die Java-koppelvlak.
- openbare koppelvlak AI strek B, C, D {
- // liggaam
- }
'N klas koppelvlak erfgenaam verklaar, moet die navraag implemente te gebruik:
- klas AClass implemente BI, CI, DI {}
Dit is, as na die klas verklaring implemente gespesifiseerde koppelvlak naam, sy klas implemente. Erfgename van hierdie klas kry sy elemente, sodat hulle verkoop dit ook.
Veranderlikes van 'n koppelvlak tipe is ook toegelaat. Hulle kan verwys na 'n tipe van die klas wat hierdie koppelvlak, of nul implemente. Sulke veranderlikes het al die elemente van die klas Object, omdat die voorwerpe wat gegenereer word deur klasse, en hulle, op sy beurt, trek uit die klas voorwerp.
abstrakte klasse, abstrakte metodes koppelvlak - in hierdie artikel, 'n paar elemente van Java voorwerp model bespreek ons.
Similar articles
Trending Now