Java absztrakt osztály és módszer (példával)

Ebben az oktatóanyagban példák segítségével megismerhetjük a Java absztrakt osztályait és módszereit. Megismerjük az Java absztrakcióját is.

Java absztrakt osztály

A Java absztrakt osztálya nem példányosítható (nem hozhatunk létre absztrakt osztályok objektumait). A abstractkulcsszóval absztrakt osztályt deklarálunk. Például,

 // create an abstract class abstract class Language ( // fields and methods )… // try to create an object Language // throws an error Language obj = new Language(); 

Az elvont osztálynak lehetnek mind a szabályos, mind az elvont módszerei. Például,

 abstract class Language ( // abstract method abstract void method1(); // regular method void method2() ( System.out.println("This is regular method"); ) )

Ha meg szeretné tudni a nem absztrakt módszereket, látogasson el a Java módszerekre. Itt megismerkedünk az elvont módszerekkel.

Java absztrakt módszer

Az a módszer, amelynek nincs teste, absztrakt módszerként ismert. Ugyanezt a abstractkulcsszót használjuk absztrakt módszerek létrehozásához. Például,

 abstract void display();

Itt display()van egy elvont módszer. A törzs display()helyébe a ;.

Ha egy osztály tartalmaz elvont módszert, akkor az osztályt elvontnak kell nyilvánítani. Ellenkező esetben hibát generál. Például,

 // error // class should be abstract class Language ( // abstract method abstract void method1(); )

Példa: Java absztrakt osztály és módszer

Bár az absztrakt osztályok nem példányosíthatók, alkategóriákat hozhatunk létre belőle. Ezután az alosztály objektumával férhetünk hozzá az absztrakt osztály tagjaihoz. Például,

 abstract class Language ( // method of abstract class public void display() ( System.out.println("This is Java Programming"); ) ) class Main extends Language ( public static void main(String() args) ( // create an object of Main Main obj = new Main(); // access method of abstract class // using object of Main class obj.display(); ) )

Kimenet

 Ez Java programozás

A fenti példában létrehoztunk egy absztrakt osztályt, amelynek neve Nyelv. Az osztály tartalmaz egy szabályos módszert display().

Létrehoztuk a Main osztályt, amely az absztrakt osztályt örökli. Figyelje meg az állítást,

 obj.display();

Itt az obj a Fő gyermekosztály tárgya. Az absztrakt osztály metódusát objektumnak hívjuk.

Absztrakt módszerek megvalósítása

Ha az absztrakt osztály tartalmaz absztrakt módszert, akkor az absztrakt szuperosztályból örökölt összes gyermekosztálynak biztosítania kell az absztrakt módszer megvalósítását. Például,

 abstract class Animal ( abstract void makeSound(); public void eat() ( System.out.println("I can eat."); ) ) class Dog extends Animal ( // provide implementation of abstract method public void makeSound() ( System.out.println("Bark bark"); ) ) class Main ( public static void main(String() args) ( // create an object of Dog class Dog d1 = new Dog(); d1.makeSound(); d1.eat(); ) )

Kimenet

 Kéreg kéreg ehetek.

A fenti példában létrehoztunk egy Animal absztrakt osztályt. Az osztály tartalmaz egy absztrakt makeSound()és egy nem absztrakt módszert eat().

Egy alosztálybeli kutyát örököltünk a szuperosztályú állattól. Itt a Kutya alosztály biztosítja az absztrakt módszer megvalósítását makeSound().

Ezután a Kutya osztály d1 objektumát használtuk a metódusok makeSound()és eat().

Megjegyzés : Ha a kutya osztály nem biztosítja az absztrakt módszer megvalósítását, akkor a makeSound()kutyát is absztraktként kell deklarálni. Ennek oka, hogy a Kutya alosztály örököl makeSound()az állattól.

Hozzáférés az absztrakt osztályok készítőjéhez

Egy absztrakt osztálynak lehetnek konstruktorai, mint a rendes osztálynak. És a superkulcsszóval hozzáférhetünk egy absztrakt osztály konstruktorához az alosztályból . Például,

 abstract class Animal ( Animal() (… . ) ) class Dog extends Animal ( Dog() ( super();… ) )

Itt használtuk a super()Dog belső konstruktorát, hogy hozzáférjünk az Animal konstruktorához.

Ne feledje, hogy superennek mindig az alosztály-konstruktor első utasításának kell lennie. További információkért keresse fel a Java szuper kulcsszavát.

Java absztrakció

Az absztrakt osztályok és módszerek fő célja az absztrakció elérése a Java-ban.

Az absztrakció az objektumorientált programozás fontos fogalma, amely lehetővé teszi számunkra, hogy elrejtsük a felesleges részleteket, és csak a szükséges információkat mutassuk meg.

Ez lehetővé teszi számunkra a komplexitás kezelését a részletek elhagyásával vagy elrejtésével egy egyszerűbb, magasabb szintű ötlet segítségével.

Az absztrakció gyakorlati példája lehet a motorfék. Tudjuk, mit csinál a fék. Amikor fékezünk, a motor leáll. A fék működését azonban rejtve tartják előttünk.

A fék működésének elrejtésének legfőbb előnye, hogy a gyártó most már másképp tudja fékezni a különböző motorkerékpárokat, azonban az, hogy mit csinál a fék, ugyanaz lesz.

Vegyünk egy példát, amely segít jobban megérteni a Java absztrakciót.

3. példa: Java absztrakció

 abstract class Animal ( abstract void makeSound(); ) class Dog extends Animal ( // implementation of abstract method public void makeSound() ( System.out.println("Bark bark."); ) ) class Cat extends Animal ( // implementation of abstract method public void makeSound() ( System.out.println("Meows "); ) ) class Main ( public static void main(String() args) ( Dog d1 = new Dog(); d1.makeSound(); Cat c1 = new Cat(); c1.makeSound(); ) )

Kimenet :

 Kéreg kéreg Meows

In the above example, we have created a superclass Animal. The superclass Animal has an abstract method makeSound().

The makeSound() method cannot be implemented inside Animal. It is because every animal makes different sounds. So, all the subclasses of Animal would have different implementation of makeSound().

So, the implementation of makeSound() in Animal is kept hidden.

Here, Dog makes its own implementation of makeSound() and Cat makes its own implementation of makeSound().

Note: We can also use interfaces to achieve abstraction in Java. To learn more, visit Java Interface.

Key Points to Remember

  • We use the abstract keyword to create abstract classes and methods.
  • An abstract method doesn't have any implementation (method body).
  • Az absztrakt módszereket tartalmazó osztálynak is elvontnak kell lennie.
  • Nem hozhatunk létre absztrakt osztály objektumait.
  • Az absztrakt osztály jellemzőinek megvalósításához alosztályokat örökölünk belőle, és létrehozzuk az alosztály objektumait.
  • Az alosztálynak felül kell írnia az absztrakt osztály összes elvont módszerét. Ha azonban az alosztályt absztraktnak nyilvánítják, akkor nem kötelező felülírni az absztrakt módszereket.
  • Az absztrakt osztály statikus attribútumaihoz és módszereihez az absztrakt osztály hivatkozása alapján férhetünk hozzá. Például,
     Animal.staticMethod();

érdekes cikkek...