Mis on Java abstraktsusklass?

  • Abstraktsed klassid on nagu kõik teised tavalised java klassid. Peamine erinevus abstraktse klassi ja normaalklassi vahel on abstraktse klassi loomine, mille jaoks peame kasutama märksõna „ABSTARCT”. See on klassi rakendamise lahusus.
  • Nad määratlesid selle alaklasside väga ühiseid jooni. Seda tüüpi klassi nimetatakse abstraktseks klassiks.
  • Kõige tähtsam on see, et me ei saa luua abstraktse klassi objekti.
  • Abstraktsed klassid võivad sisaldada nii abstraktseid kui ka mitteabstraktseid meetodeid. Need ei saa sisaldada abstraktse meetodi korpust, mida saab pakkuda ainult alaklass. Kui alaklass ei paku abstraktse meetodi rakendamist, peame selle muutma otsesõnu.
  • Teisisõnu, kui klass sisaldab abstraktset meetodit, peab ta määratlema end kui ABSTARCT.
  • Abstraktsete klasside kasutamisel saame grupeerida mitu java-klassi kokku. Samuti optimeerib see koodi ja muudab selle koodi loetavamaks ning vähendab üleliigset koondamist. See pakub ka malli tulevastele klassidele.

Java abstraktse klassi süntaks

Kuidas abstraktne klass Java töötab?

  • Abstraktsel klassil on abstraktsed meetodid ja mitteabstraktsed meetodid, st abstraktsed meetodid ilma kehata ja neil võib olla ka meetodeid rakendamiseks.
  • Abstraktset klassi kasutatakse kõige tavalisema tunnuse pakkumiseks, mis on omane erinevatele klassidele. Alamklassid pakuvad nende abstraktsete meetodite teistsugust rakendamist vastavalt nende vajadustele või nõudmistele.
  • Me ei saa luua abstraktse klassi objekti 'uue' operaatori abil, kuid saame siiski määratleda selle konstrukatori, millele saab tugineda ainult selle alaklassi konstruktoris. Alamklassi konstruktor pääseb juurde superklassi konstruktorile, et initsialiseerida selle muutuja, mida võidakse alaklassis täiendavate nõuete jaoks kasutada.

Java abstraktklassi näited

Inimene.java

package com.cont.article;
public abstract class Human
(
public abstract void whatTheylike();
public void doTheysleep()
(
System. out .println("Yes every human require sleep.");
)
)

Inimese1.java

package com.cont.article;
public class Human1 extends Human
(
@Override
public void whatTheylike()
(
System. out .println("we like to have icecream.");
)
)

Inimese2.java

package com.cont.article;
public class Human2 extends Human
(
@Override
public void whatTheylike()
(
System. out .println("we like to have coffee.");
)
)

TestHuman.java

package com.cont.article;
public class TestHuman
(
public static void main(String() args)
(
Human human1 = new Human1();
human1.whatTheylike();
Human human2 = new Human2();
human2.whatTheylike();
human1.doTheysleep();
human2.doTheysleep();
)
)

Väljund:

Ülaltoodud näites on INIMENE abstraktse klassina, mis määratleb inimese ühised vajadused, meeldimised ja mitte. On olemas erinevat tüüpi inimesi, kellel on erinevad meeldimised ja mitte meeldimised. Nii saab iga inimene pakkuda konkreetset rakendust sellele, mis neile meeldib. See puudutab ainult neid.

Abstraktse klassi peamine eelis on see, et meil on spetsiifiline meetodite rakendamine vastavalt nõudele, mis vähendab ka koondamist, suurendab koodi loetavust, peidab meetodite rakendamist ja pakub seega osalist abstraktsiooni.

Meil on veel üks näide, et mõista, millal peaksime abstraktseid klasse kasutama.

  • Peaksime kasutama abstraktset klassi, kui soovime jagada konkreetsete rakendustega eri klasside vahel ühiseid funktsioone.
  • Abstraktsetes klassides ei tohiks väljad olla staatilised ja lõplikud, meil võib olla ka konkreetseid meetodeid, mis määratletakse kui privaatsed, avalikud ja kaitstud.

Ütleme, et meil on üks loomaklass. On erinevaid loomi, mis meil maa peal on ja nad kõik erinevad üksteisest mõnes või suures mõttes. See sisaldab kõigi ühiseid jooni.

Nüüd ei saa selles loomaklassis olla meetodeid, mis oleksid konkreetsed igale loomale. Nii et abstraktse klassi kontseptsiooni abil saame selle funktsionaalsuse rakendada ilma ülearuse koodita.

Kõigil loomadel on erinev heli tüüp, harjumused jne. Näiteks koeral, kassil, elevandil ja suupistetel on neil kõigil erinev heli. Selleks on meil vanemate klassis üldine meetod, mille kaudu kõik muud alaklassid või lasteklassid saavad pakkuda oma spetsiifilist rakendust.

Vanemklassis, st loom, on meil üks üldine abstraktne meetod, mida nimetatakse nende heliks (). Nii et iga lasteklass peab selle meetodi alistama ja pakkuma oma konkreetset rakendust.

Abstraktne klass ja liides?

  • Java abstraktsiooni saavutamiseks kasutatakse abstraktset klassi ja liidest. Abstraktne klass pakub osalist abstraktsiooni, liides aga 100% või täielikku abstraktsiooni.
  • Vaikimisi on liidese muutujad lõplikud. Kuid abstraktne klass sisaldab ka lõpmatut muutujat. Samamoodi võib abstraktsel klassil olla ka staatiline, mittestaatiline muutuja. Kuid liides sisaldab ainult lõplikku ja staatilist muutujat.
  • Abstraktse klassi liikmesmuutujad võivad olla nagu privaatsed, avalikud, kaitstud, kuid liidese korral on need vaikimisi avalikud.
  • Abstraktne klass võib laiendada teist Java-klassi ja rakendada mitmeid liideseid, kuid üks liides võib laiendada ainult teist liidest. Abstraktne klass võib pakkuda liidese rakendust, kuid liides ei saa seda teha.
  • Liidese ja klasside rakendamiseks ja laiendamiseks kasutame seadmeid ja märksõna laiendamist.
  • Meetodi abil saame muuta või pääseda juurde abstraktse klassi mittestaatilistele ja mitte-lõplikele muutujatele.

Järeldus

  • Abstraktne klass, mida kasutatakse osalise abstraktsiooni saamiseks. Abstraktset klassi ei saa kiirendada, kasutades uut märksõna.
  • Abstraktsel meetodil puudub keha ja see lõpeb alati semikooloniga (;).
  • Abstraktne klass sisaldab abstraktseid ja mitteabstraktseid meetodeid.
  • Abstraktse superklassi alamklass peab tagama kõigi abstraktsete meetodite rakenduse, kui seda ei pakuta, siis tuleb kuulutada end abstraktseks klassiks.
  • Alamklass võib olla abstraktne isegi siis, kui ülemklass on konkreetne.
  • Mitteabstraktne klass ei tohi sisaldada abstraktseid meetodeid. Samuti on abstraktne meetod mittestaatiline.
  • Seega võime öelda, et abstraktsed klassid sisaldavad ka abstraktseid ja konkreetseid meetodeid, nii et nad ei saa pakkuda 100% abstraktsiooni. See on keeruka loogika varjamine lõppkasutaja eest ja näitab neile ainult teenuseid. Alamklass võib olla abstraktne isegi siis, kui selle ülemklass on konkreetne, ja seda saab kasutada ka andmetüübina.
  • Abstraktsel klassil võivad olla staatilised väljad ja staatilised meetodid. Neid staatilisi liikmeid saate kasutada klassiviitega.

Soovitatavad artiklid

See on Java abstraktklassi juhend. Siin käsitleme Java süntaksi ja abstraktse klassi näiteid koos abstraktse klassi ja liidesega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Java liides vs abstraktne klass
  2. BoxLayout Java-s
  3. Mis on Java SE?
  4. Mis on Java pärand?
  5. Kuidas töötab abstraktne klass PHP-s?
  6. C ++ abstraktne klass
  7. Staatiliste meetodite juhend PHP-s
  8. JavaScripti staatilise meetodi täielik ülevaade

Kategooria: