Mi az absztrakt osztály a Java-ban?

  • Az absztrakt osztályok olyanok, mint a java többi normális osztálya. Az absztrakt osztály és a normál osztály közötti fő különbség az absztrakt osztály létrehozása, amelyet az 'ABSTARCT' kulcsszóval kell használni. Ez az osztályok végrehajtásának szétválasztása.
  • Az alosztályok nagyon általános tulajdonságait határozták meg. Az ilyen típusú osztály elvont osztálynak minősül.
  • A legfontosabb, hogy nem hozhatunk létre absztrakt osztály tárgyát.
  • Az absztrakt osztályok tartalmazhatnak absztrakt és nem absztrakt módszereket is. Nem tartalmazhatják az elvont módszer egy részét, amelyet csak az alosztály nyújthat. Ha az alosztály nem biztosítja az elvont módszer megvalósítását, akkor azt kifejezetten ABSTRACT-nak kell tennünk.
  • Más szavakkal, ha egy osztály absztrakt módszert tartalmaz, akkor ABSTARCT-ként kell meghatároznia magát.
  • Absztrakt osztályok felhasználásával több java osztályt csoportosíthatunk, ez szintén optimalizálja a kódot, könnyebben olvashatóvá teszi a kódot és csökkenti a redundanciát. Ezenkívül sablont is kínál a jövőbeli osztályok számára.

Az abszolút osztály szintaxisa Java-ban

Hogyan működik az absztrakt osztály a Java-ban?

  • Az absztrakt osztálynak van absztrakt és nem absztrakt módszere, azaz absztrakt módszer test nélkül, és vannak módszereik végrehajtással is.
  • Az absztrakt osztály biztosítja a leggyakoribb funkciót, amely a különféle osztályokra jellemző. Az alosztályok az elvont módszerek eltérő megvalósítását biztosíthatják igényeik vagy igényeik szerint.
  • Nem hozhatunk létre egy absztrakt osztály objektumát az 'új' operátor használatával, de mégis meghatározhatjuk annak konstruktort, amelyre csak az alosztály konstruktorában lehet hivatkozni. Az alosztály-konstruktor hozzáférhet egy szuperosztály-konstruktorhoz, hogy inicializálja a változót, amelyet esetleg az alosztályban használnak további követelményekhez.

Példák a Java absztrakt osztályra

Human.java

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

Human1.java

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

Human2.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();
)
)

Kimenet:

A fenti példában az emberiség absztrakt osztály, amely meghatározza az ember közös igényeit, kedveli és nem tetszik. Különböző típusú emberek vannak, különböző szeretettel és nem tetszik. Tehát minden ember biztosítani tudja azt, amit szeret. Ez csak nekik vonatkozik.

Az absztrakt osztály fő előnye, hogy a módszerek speciális megvalósításával rendelkezik olyan követelmény szerint, amely szintén csökkenti az redundanciát, növeli a kód olvashatóságát, elrejti a módszerek megvalósítását, és így részleges absztrakciót biztosít.

Van még egy példa arra, hogy megértsük, mikor kell absztrakt osztályokat használni.

  • Absztrakt osztályt kell használnunk, amikor közös funkcionalitást akarunk megosztani a különféle osztályok között, konkrét megvalósítás mellett.
  • Az absztrakt osztályokban a mezőknek nem szabad statikusnak és véglegesnek lenniük, konkrét módszereket is meghatározhatunk magán, nyilvános és védett formákban.

Tegyük fel, hogy van egy állat osztályunk. Vannak olyan fajta állatok, amelyek a Földön vannak, és mindegyik különbözik egymástól bizonyos vagy nagyobb értelemben. Ez tartalmazza az összes közös vonását.

Ebben az állatosztályban nem lehetnek olyan módszerek, amelyek minden állatra jellemzőek. Tehát az Absztrakt osztály koncepciója segítségével redundáns kód nélkül megvalósíthatjuk ezt a funkciót.

Minden állatnak különféle hangzása van, szokásai stb. Például a kutya, macska, elefánt és snack hangja eltérő. Tehát ehhez egy szokásos módszert alkalmazhatunk a szülői osztályban, amelyen keresztül az összes többi alosztály vagy gyermekosztály biztosítja saját specifikus megvalósítását.

A szülői osztályban, azaz az állatban, van egy általános elvont módszer, az úgynevezett Sound (). Tehát minden gyermekosztálynak felül kell írnia ezt a módszert, és biztosítania kell saját specifikus megvalósítását.

Absztrakt osztály és interfész?

  • Az absztrakciós osztályt és az interfészt egyaránt használják a java absztrakció eléréséhez. Egy absztrakt osztály részleges absztrakciót, míg az interfész 100% -os vagy teljes absztrakciót biztosít.
  • Alapértelmezés szerint a felhasználói felületen a változók véglegesek. De az absztrakt osztály tartalmaz egy nem végleges változót is. Hasonlóképpen az absztrakt osztálynak is lehet statikus, nem statikus változója. De az Interfész csak egy végleges és statikus változót tartalmaz.
  • Egy absztrakt osztály tagváltozói lehetnek privát, nyilvános, védett, de az interfész esetében alapértelmezés szerint nyilvánosak.
  • Egy absztrakt osztály kibővíthet egy másik Java osztályt és megvalósíthat több interfészt, de az egyik interfész csak egy másik interfészt bővíthet. Egy absztrakt osztály nyújthat egy felület megvalósítását, de egy felület nem tudja megtenni.
  • Az eszközöket és a kulcsszó kiterjesztését használjuk az interfész és az osztályok megvalósításához és kiterjesztéséhez.
  • Módszeren keresztül módosíthatjuk vagy elérhetjük egy absztrakt osztály nem statikus és nem végleges változóit.

Következtetés

  • A részleges absztrakció elvégzéséhez használt absztrakt osztály. Egy absztrakt osztály nem realizálható az ÚJ kulcsszóval.
  • Az absztrakt módszernek nincs testje, és mindig pontosvesszővel (;) végződik.
  • Az absztrakt osztály absztrakt és nem absztrakt módszereket tartalmaz.
  • Egy absztrakt szuperosztály alosztályának meg kell adnia az összes elvont módszer megvalósítását, ha nem biztosítja, akkor absztrakt osztálynak kell nyilvánítania magát.
  • Az alosztály absztrakt lehet akkor is, ha a szuper osztály konkrét.
  • A nem absztrakt osztály nem tartalmazhat absztrakt módszereket. Az absztrakt módszer nem statikus.
  • Ezért elmondhatjuk, hogy az absztrakt osztályok absztrakt és konkrét módszereket is tartalmaznak, így nem tudják biztosítani a 100% -os absztrakciót. Ez a komplex logika elrejtésének a folyamata a végfelhasználótól, és csak a szolgáltatásokat mutatja meg. Az alosztály absztrakt lehet akkor is, ha szuperosztálya konkrét, és adattípusként is használható.
  • Az absztrakt osztályok statikus mezőkkel és statikus módszerekkel is rendelkezhetnek. Ezeket a statikus tagokat osztály referenciával használhatja.

Ajánlott cikkek

Ez egy útmutató a Java absztrakt osztályához. Itt tárgyaljuk a Java szintaxisát és az absztrakt osztály példáit, valamint az abszolút osztályt és az interfészt. A következő cikkeket is megnézheti további információkért -

  1. Java interfész vs absztrakt osztály
  2. BoxLayout Java-ban
  3. Mi a Java SE?
  4. Mi a Java öröklés?
  5. Hogyan működik az absztrakt osztály a PHP-ben?
  6. C ++ absztrakt osztály
  7. Útmutató a statikus módszerhez a PHP-ben
  8. A JavaScript statikus módszerének teljes áttekintése

Kategória: