/ / Objekto modelio Java elementai: abstrakta klasė, sąsaja

Java objekto modelio elementai: abstrakčioji klasė, sąsaja

Pagrindinė abstrakčios klasės idėja yra tokia tezė: kartais nereikia pasiruošti klasėms, bet "žaliavoje". Tokie blankai negali būti naudojami tiesiogiai (kurkite pavyzdžius).

java abstrakta klasė

Kokia yra abstrakčioji Java klasė?

Dar kartą apsvarstykime kitą pavyzdį. Java yra abėcėlinė Kalbos klasė Java.util paketu. Tai nėra įgyvendinti konkretų kalendorių, kuris naudojamas, pavyzdžiui, Vakarų ir Rytų Europoje, Kinijoje, Šiaurės Korėjoje, Tailande, ir tt Bet ji turi daug naudingų funkcijų, pavyzdžiui, pridedant keletą dienų iki tam tikros datos: .. Šios funkcijos yra reikalingos bet kalendoriaus įgyvendinimas. Negalite spaustyti egzemplioriaus iš abstrakčios klasės.

Abstraktumo klasės, Java abstrakčių metodų

Tarkime, kad reikia sukurti keletą grafikoselementai, pvz., geometriniai skaičiai: apskritimas, stačiakampis, žvaigždutė ir kt. Yra ir konteineris, kuris jas atkreipia. Kiekvienas komponentas turi skirtingą išvaizdą, todėl atitinkamas metodas (tegul jis vadinamas dažais) yra įgyvendinamas skirtingai. Tačiau kiekvienas komponentas turi daug panašumų: .. Paveiksle turi būti įtrauktos į laukelį gali turėti spalvą būtų matoma ir nematoma, ir tt Kitaip tariant, jums reikia sukurti tėvų klasės visų šių veikėjų, kur kiekvienas komponentas paveldės bendrąsias savybes.

abstrakčių klasių abstrakčių metodų java
Bet kaip apie dažų metodą? Galų gale tėvų klasė neturi vizualaus vaizdo. Jei deklaruosite dažų metodą kiekvienoje klasėje atskirai, turėsite analizuoti, kuris komponentas yra apdorojamas, o tada įdėkite tipą. Todėl metodas turėtų būti paskelbtas abstrakčiu tėvų klasėje: nustatyti metodo antraštę be kūno. Kiekviena išvestinė klasė apibūdins savo kūną. Abiejose klasėse Java gali apibendrinti abstrakčius metodus.

Jei klasėje yra abstrakčių metodų, tadaklasė yra abstrakt. Prieš žodį "klasė" įterpkite raktinį žodį abstraktus, taip pat ir metodo antraštėje. Po šio metodo galvos, turite įdėti kabliataškę. "Java" abstrakčioji klasė negali sukelti egzempliorių. Jei norime uždrausti jų kūrimą, net jei klasėje nėra abstrakčių metodų, klasė gali būti paskelbta abstrakta. Bet jei klasėje yra bent vienas abstraktus metodas, klasė turi būti abstrakt. Klasė taip pat negali būti abstraktine, galutine ir metodika. Šis metodas negali būti abstraktus, privatus, statinis, gimtoji. Norėdami poklasio galima deklaruoti ne abstrakti ir egzempliorių, jie turi įgyvendinti visas abstrakčias metodus tėvų. Klasė gali naudoti savo abstrakčius metodus.

Pavyzdys:

  • abstrakčioji klasė AClass {
  • viešasis abstraktusis tuštumo metodas (int a);
  • }
  • klasė BClass tęsiasi AClass {
  • viešas negaliojantis metodas (int a) {
  • // kūnas
  • }

Leidžiami abstrakčios klasės tipo kintamieji. Jie gali nurodyti neabsorcinį šios klasės palikuonį arba būti nuliniais.

Sąsajos Java - alternatyva daugybei paveldėjimo

sąsajos ir abstrakčios Java klasės

Java neturi daug paveldėjimo, nes tada yra tam tikrų problemų. Klasė negali paveldėti kelių klasių. Tačiau ji gali įgyvendinti keletą sąsajų.

Java sąsajos ir abstrakčios klasespanaši, bet ne identiška. Sąsaja gali būti paskelbta kaip vieša, tada ji yra prieinama visiems, arba jūs negalite nurodyti modifikatoriaus viešo, tada sąsaja yra prieinama tik jos paketą. Abstraktinis raktinis žodis nereikalingas, nes sąsaja jau abstrakta, bet ją galite nurodyti.

Sąsajos deklaracija

skirtumas tarp abstrakčios klasės ir java sąsajos

Jis prasideda antraštėmis ir gali būti pirmasraktinis žodis viešas, tada žodžio sąsaja. Tada gali būti žodžio išplėtimas ir sąsajų, iš kurių tai paveldima, skaičiavimas. Negalima pakartoti, taip pat neįmanoma, kad paveldėjimo santykis būtų cikliškas. Tada ateina sąsajos korpusas, uždėtas į petnešomis. Elemento laukai deklaruojami sąsajos kūne: pastovūs laukai ir abstrakti metodai. Visi laukai yra viešieji galutiniai statiniai - visi šie modifikatoriai yra neprivalomi. Visi metodai laikomi viešais abstraktais - taip pat gali būti nurodyti šie modifikatoriai. Dabar pakankamai pakanka pasakyti apie abstrakčios klasės skirtumą iš "Java" sąsajos.

  • viešoji sąsaja AI pratęsia B, C, D {
  • // kūnas
  • }

Norėdami paskelbti klasę kaip sąsajos įpėdinį, turite naudoti raktinių žodžių įgyvendinimą:

  • klasė "AClass" suprojektuoja BI, CI, DI {}

Tai yra, jei sąsajos pavadinimas yra nurodytas klasės deklaracijoje po įdiegimų, tada klasė ją įgyvendina. Šios klasės įpėdiniai paveldės jos elementus, taigi jie taip pat įgyvendina.

Taip pat leidžiama naudoti sąsajos tipo kintamuosius. Jie gali nurodyti klasę, kuri įgyvendina šią sąsają, arba nulinį. Tokie kintamieji turi visus Objekto klasės elementus, nes objektai yra generuojami iš klasių, o tie, kurie savo ruožtu yra paveldimi iš Objekto klasės.

Šiame straipsnyje apžvelgėme kai kuriuos "Java" objekto modelio elementus - abstrakčius klases, abstrakčius metodus, sąsajas.

Skaityti daugiau: