Kokkuvõtlikud tunnid aidata kasutajatel saavutada abstraktsioon, mis on tarkvara kujundamise käigus kõige olulisem objektorienteeritud programmeerimispraktika. Selles artiklis käsitleme abstraktsete klasside terminoloogiat järgmise pesa kaudu.
- Mis on Java abstraktsed klassid?
- Miks on meil Java-s vaja abstraktseid kursusi?
- Reeglid abstraktsete klasside kasutamiseks Java-s
- Abstraktsiooni saavutamise viisid Java-s
- Abstraktsete klasside süntaks
- Abstraktsete klasside praktilised näited
- Liidese ja abstraktse klassi erinevus
Mis on Java abstraktsed klassid?
Kokkuvõtlikud tunnid toimima piirina rakendusmeetodi ja selle funktsionaalsuse vahel. Seda kasutatakse funktsionaalsuse vahetamiseks Betoon klassi liikmed ja Abstraktne Klass.
Abstraktseid klasse peetakse klassideks, mis varjavad Meetodi rakendamine kasutaja üksikasjad ja kuvatakse ainult Meetodi funktsionaalsus. Need deklareeritakse märksõna abil abstraktne . Need meetodid võivad hõlmata järgmist Abstraktne ja Mitte-abstraktne meetodeid neis.
mis on kontekstifilter tabelis
Miks on meil Java-s vaja abstraktseid kursusi?
Vajame Java-s abstraktseid klasse järgmistel põhjustel:
- Abstract klasside tugi Dünaamilise meetodi eraldusvõime jooksuajal
- Need aitavad kasutajatel saavutada Lahtine sidumine
- Abstraktne klassid eraldavad Meetodi määratlus pärilikult Alamklassid
- Nad pakuvad Vaikefunktsioon määratletud meetodi kõigi alamklasside jaoks
- Abstraktsetes klassides pakutakse a Mall tulevaste konkreetsete klasside jaoks
- Abstraktne klass lubab Kood Korduvkasutus
Reeglid abstraktsete klasside kasutamiseks Java-s
Abstraktse klassi rakendamiseks Java-s peame järgima allpool kirjeldatud reegleid:
- Abstraktne klass tuleb deklareerida, kasutades abstraktne märksõna.
- Abstraktsed klassid võivad sisaldada abstraktne ja mitte abstraktne meetodid.
- Abstraktne klass ei saa olla instantsitud.
- Need võivad hõlmata konstruktorid ja staatiline meetodid.
- Abstraktne klass sisaldab lõplik meetodid.
Abstraktsiooni saavutamise viisid Java-s
Abstraktsiooni protsessi Java-s saab saavutada järgmise kahe meetodiga, nagu allpool mainitud:
- Abstraktse klassi rakendamine
- Liidese rakendamine
Abstraktsete klasside süntaks
Abstraktsete klasside ja abstraktsete meetodite määratlemise süntaks on järgmine:
abstraktne klass Edureka {}
abstraktse klassi meetod ()
Abstraktsete klasside praktilised näited
// Abstraktne klass
pakett Abstraktne avalik abstraktne klass Isik {privaatne Stringi nimi privaatne Stringi sugu avalik isik (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Studying () @Override public String toString () {return ' Nimi = '+ see.nimi +' :: Sugu = '+ see.gender}}
// Õpilasklass
pakett Abstraktne avalik klass Õpilane laiendab isikut {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studying () {if (StudentID == 0 ) {System.out.println ('ei õpi')} else {System.out.println ('kraadi omandamine inseneri bakalaureuseõppes')}} avalik staatiline tühine main (String args []) {Isik üliõpilane = uus üliõpilane ('Priya', 'Naine', 0) Isikõpilane1 = uus õpilane ('Karan', 'Mees', 201021) Isikõpilane2 = uus õpilane ('Kumari', 'Naine', 101021) Isikõpilane3 = uus õpilane (' John ',' Male ', 201661) õpilane. Õppimine () õpilane1.Õppimine () õpilane2. Õppimine () õpilane3.Õppimine () System.out.println (student.toString ()) System.out.println (student1.toString ()) System.out.println (student2.toString ()) System.out.println (student3.toString ())}}
Väljund:
Ei õpi
Inseneri bakalaureuse kraadi omandamine
Inseneri bakalaureuse kraadi omandamine
Inseneri bakalaureuse kraadi omandamine
Nimi = Priya :: Sugu = naine
Nimi = Karan :: Sugu = Mees
Nimi = Kumari :: Sugu = naine
Nimi = Johannes :: Sugu = mees
kuidas hoiatada javascriptis
Liidese ja abstraktse klassi erinevus
Liides | Abstraktne klass |
Saab olla ainult abstraktseid meetodeid | Võib kasutada abstraktseid ja mitte-abstraktseid meetodeid |
Sellel on ainult lõplikud muutujad | See sisaldab mitte-lõplikke muutujaid |
Sellel on ainult staatilised ja lõplikud muutujad | Sellel on staatilised, mittestaatilised, lõplikud, mitte-lõplikud muutujad |
Abstraktklassi ei rakendata | Oskab rakendada liidest |
Rakendatakse märksõna „rakendab” abil | Rakendatud märksõna „laiendab” abil |
Saab laiendada ainult liidest | Oskab laiendada Java-klassi ja liideseid |
Liikmed on vaikimisi avalikud | Liikmed võivad olla privaatsed ja kaitstud |
// Abstraktne klassi näide
package abstactVSinterface abstraktne klass Kuju {String objectName = '' Kuju (stringi nimi) {this.objectName = nimi} abstraktne avalik kahekordne ala () abstract public void draw ()} klass Ristkülik laiendab kuju {int pikkus, laius Ristkülik (int pikkus, int laius, stringi nimi) {super (nimi) this.length = pikkus this.width = width} @Orride public void draw () {System.out.println ('Ristkülik on joonistatud')} @Orride public double area () {return (double) (pikkus * laius)}} klass Ring laieneb Kuju {double pi = 3,14 int raadius Ring (int raadius, Stringi nimi) {super (nimi) this.radius = raadius} @Ava avalik tühi joonistus () { System.out.println ('Ring on tõmmatud')} @Ava avalik kahekordne ala () {return (double) ((pi * raadius * raadius) / 2)}} class Edureka {public staatiline void main (String [] args ) {Shape rect = uus ristkülik (20, 30, 'Rectangle') System.out.println ('Ristküliku ala:' + rect.area ()] Kuju ring = new Circle (20, 'Cicle') System.out .println ('Ringjoone pindala on:' + ring.area ())}}
Väljund:
Ristküliku pindala: 600,0
Ringjoone pindala on: 628,0
// Liidese näide
paketi absVSint liides Kuju {void draw () topeltala ()} klass Ristküliku tööriistad Kuju {int pikkus, laius Ristkülik (int pikkus, int laius) {this.length = pikkus this.width = width} @Override public void draw () {System.out.println ('Ristkülik on joonistatud')} @Ava avalik kahekordne ala () {return (double) (pikkus * laius)}} klass Circle rakendab kuju {double pi = 3,14 int raadius Circle (int raadius) {this.radius = raadius} @Ava avalik void draw () {System.out.println ('Ring on joonistatud')} @Ava avalik topeltala () {return (double) ((pi * raadius * radius) / 2)}} klass Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Ristküliku ala:' + rect.area ()) Kuju ring = uus Circle (20) System.out.println ('Ringjoone ala:' + ring.area ())}}
Väljund:
Ristküliku pindala: 600,0
Ringjoone pindala: 628,0
Sellega jõuame selle artikli lõpuni. Loodan, et olete aru saanud abstraktsiooni, süntaksi, funktsionaalsuse, Abstrakti reeglite olulisusest Javas ja nendega seotud praktilistest näidetest.
ühendatud ja ühendamata transformatsioon informaatikas
Nüüd, kui olete Java põhitõdedest aru saanud, vaadake järgmist autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on mõeldud selleks, et anda Java-programmeerimisele edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka täiustatud kontseptsioonide ning erinevate Java-raamistike jaoks, nagu näiteks talveunerežiim ja Kevad .
Kas teil on meile küsimus? Mainige seda selle ajaveebi „Abstract Classes in Java“ kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.