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).
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.
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
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
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.