logo

Absztrakt módszer Java nyelven

Az objektum-orientált programozásban az absztrakciót úgy definiálják, mint a szükségtelen részletek (megvalósítás) elrejtését a felhasználó elől, és a lényeges részletekre (funkcionalitás) való összpontosítást. Növeli a hatékonyságot, és ezáltal csökkenti a bonyolultságot.

A Java nyelven az absztrakció a használatával érhető el absztrakt osztályok és módszerek. Ebben az oktatóanyagban megismerjük az absztrakt módszereket és azok használatát a Java nyelven.

Absztrakt osztály

Egy osztályt absztraktnak nyilvánítunk a absztrakt kulcsszó. Lehet nulla vagy több absztrakt és nem absztrakt metódusa. Ki kell terjesztenünk az absztrakt osztályt és implementálnunk kell a metódusait. Nem lehet példányosítani.

Az absztrakt osztály szintaxisa:

 abstract class class_name { //abstract or non-abstract methods } 

Megjegyzés: Egy absztrakt osztály tartalmazhat absztrakt metódusokat, de nem is.

Absztrakt módszer

A módszer használatával deklarált absztrakt kulcsszó egy absztrakt osztályon belül, és nincs definíciója (implementáció), absztrakt metódusnak nevezzük.

Ha egy szuperosztályban csak a metódus deklarációjára van szükségünk, akkor azt a metódusok absztraktként való deklarálásával érhetjük el.

bináris keresőfa

Az absztrakt metódust alosztály felelősségének is nevezik, mivel nem rendelkezik a szuperosztályban való megvalósítással. Ezért egy alosztálynak felül kell írnia a metódusdefiníció biztosításához.

Szintaxis az absztrakt módszerhez:

 abstract return_type method_name( [ argument-list ] ); 

Itt az absztrakt módszernek nincs metódustörzse. Lehet nulla vagy több argumentuma.

Emlékeztető pontok

A következő pontok a Java absztrakt módszerének fontos szabályai:

  • Egy absztrakt metódusnak nincs törzse (implementációja), csak van metódusaláírása (deklarációja). Az absztrakt osztályt kiterjesztő osztály az absztrakt metódusokat valósítja meg.
  • Ha egy nem absztrakt (konkrét) osztály kiterjeszt egy absztrakt osztályt, akkor az osztálynak meg kell valósítania az adott absztrakt osztály összes absztrakt metódusát. Ha nem, akkor a konkrét osztályt is absztraktnak kell nyilvánítani.
  • Mivel az absztrakt metódusoknak csak az aláírása van, pontosvesszőnek (;) kell lennie a végén.
  • Az alábbiakban különféle illegális kombinációk metódusok egyéb módosítói közül absztrakt módosító:
    • végső
    • absztrakt bennszülött
    • absztrakt szinkronizált
    • absztrakt statikus
    • elvont magán
    • elvont strictfp
  • Ha egy osztály absztrakt metódust tartalmaz, akkor absztraktnak kell lennie, és fordítva nem igaz.

Példa absztrakt módszerre Java nyelven

1. példa:

A következő példában megtudjuk, hogyan érhető el az absztrakció absztrakt osztályok és absztrakt módszerek segítségével.

AbstractMethodEx1.java

 // abstract class abstract class Multiply { // abstract methods // sub class must implement these methods public abstract int MultiplyTwo (int n1, int n2); public abstract int MultiplyThree (int n1, int n2, int n3); // regular method with body public void show() { System.out.println ('Method of abstract class Multiply'); } } // Regular class extends abstract class class AbstractMethodEx1 extends Multiply { // if the abstract methods are not implemented, compiler will give an error public int MultiplyTwo (int num1, int num2) { return num1 * num2; } public int MultiplyThree (int num1, int num2, int num3) { return num1 * num2 * num3; } // main method public static void main (String args[]) { Multiply obj = new AbstractMethodEx1(); System.out.println ('Multiplication of 2 numbers: ' + obj.MultiplyTwo (10, 50)); System.out.println ('Multiplication of 3 numbers: ' + obj.MultiplyThree (5, 8, 10)); obj.show(); } } 

Kimenet:

Absztrakt módszer Java nyelven

2. példa:

Alapértelmezés szerint az interfész összes metódusa nyilvános és absztrakt. Egy interfész nem tartalmazhat konkrét metódusokat, azaz normál testes metódusokat.

AbstractMethodEx2.java

 // interface interface SquareCube { // abstract methods public abstract int squareNum (int n); // it not necessary to add public and abstract keywords // as the methods in interface are public abstract by default int cubeNum (int n); // regular methods are not allowed in an interface // if we uncomment this method, compiler will give an error /*public void disp() { System.out.println ('I will give error if u uncomment me'); } */ } public class AbstractMethodEx2 implements SquareCube { // defining the abstract methods of interface public int squareNum (int num) { return num * num; } public int cubeNum (int num) { return num * num * num; } // main method public static void main(String args[]){ SquareCube obj = new AbstractMethodEx2(); System.out.println('Square of number is: ' + obj.squareNum (7) ); System.out.println('Cube of number is: ' + obj.cubeNum (7)); } } 

Kimenet:

string valueof
Absztrakt módszer Java nyelven

Ily módon megismertük az absztrakt módszert és annak Java-ban való megvalósítását.