Java sissejuhatus abstraktsetesse klassidesse



See artikkel aitab teil üksikasjalikult käsitleda Java abstraktseid klasse ja näiteid kontseptsiooni palju paremaks mõistmiseks.

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?

Kokkuvõtlikud tunnid toimima piirina rakendusmeetodi ja selle funktsionaalsuse vahel. Seda kasutatakse funktsionaalsuse vahetamiseks Betoon klassi liikmed ja Abstraktne Klass.





Abstract-Classes-in-Java-Edureka

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:

  1. Abstraktse klassi rakendamine
  2. 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 meetodeidVõib kasutada abstraktseid ja mitte-abstraktseid meetodeid
Sellel on ainult lõplikud muutujadSee sisaldab mitte-lõplikke muutujaid
Sellel on ainult staatilised ja lõplikud muutujadSellel on staatilised, mittestaatilised, lõplikud, mitte-lõplikud muutujad
Abstraktklassi ei rakendataOskab rakendada liidest
Rakendatakse märksõna „rakendab” abilRakendatud märksõna „laiendab” abil
Saab laiendada ainult liidestOskab laiendada Java-klassi ja liideseid
Liikmed on vaikimisi avalikudLiikmed 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.