Java abstraktā klase un metode (ar piemēru)

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java abstraktām klasēm un metodēm. Mēs arī uzzināsim par abstrakciju Java valodā.

Java abstraktā klase

Java abstrakto klasi nevar instantizēt (mēs nevaram izveidot abstraktu klašu objektus). Mēs izmantojam abstractatslēgvārdu abstraktas klases pasludināšanai. Piemēram,

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

Abstraktā klasē var būt gan parastās metodes, gan abstraktās metodes. Piemēram,

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

Lai uzzinātu par ne abstraktām metodēm, apmeklējiet Java metodes. Šeit mēs uzzināsim par abstraktām metodēm.

Java abstraktā metode

Metodi, kurai nav ķermeņa, sauc par abstraktu metodi. Mēs izmantojam to pašu abstractatslēgvārdu, lai izveidotu abstraktas metodes. Piemēram,

 abstract void display();

Šeit display()ir abstrakta metode. Ķermeņa display()aizstāj ar ;.

Ja klasē ir abstrakta metode, tad klase jāpasludina par abstraktu. Pretējā gadījumā tas radīs kļūdu. Piemēram,

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

Piemērs: Java abstraktā klase un metode

Lai arī abstraktās klases nevar izveidot, mēs varam no tām izveidot apakšklases. Pēc tam mēs varam piekļūt abstraktās klases dalībniekiem, izmantojot apakšklases objektu. Piemēram,

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

Rezultāts

 Tā ir Java programmēšana

Iepriekš minētajā piemērā mēs esam izveidojuši abstraktu klasi ar nosaukumu Valoda. Klase satur regulāru metodi display().

Mēs esam izveidojuši galveno klasi, kas pārņem abstrakto klasi. Ievērojiet paziņojumu,

 obj.display();

Šeit obj ir bērnu klases Main objekts. Mēs saucam abstraktās klases metodi, izmantojot objektu obj.

Abstraktu metožu ieviešana

Ja abstraktā klase ietver kādu abstraktu metodi, tad visām abstraktās virsklases mantotajām bērnu klasēm jānodrošina abstraktās metodes ieviešana. Piemēram,

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

Rezultāts

 Mizas miza es varu ēst.

Iepriekš minētajā piemērā mēs esam izveidojuši abstraktu dzīvnieku klasi. Nodarbība satur abstraktu metodi makeSound()un ne-abstraktu metodi eat().

Mēs esam mantojuši apakšklases Suni no superklases Dzīvnieka. Šeit apakšklases suns nodrošina abstraktās metodes ieviešanu makeSound().

Pēc tam mēs izmantojām suņu klases objektu d1, lai izsauktu metodes makeSound()un eat().

Piezīme : Ja Suņu klase nenodrošina abstraktās metodes ieviešanu makeSound(), Suns arī jādeklarē kā abstrakts. Tas ir tāpēc, ka apakšklase Suns manto makeSound()no Dzīvnieka.

Piekļūst abstrakto klašu konstruktoram

Abstraktā klasē var būt konstruktori, piemēram, parastā klase. Izmantojot superatslēgvārdu , mēs varam piekļūt abstraktas klases konstruktoram no apakšklases . Piemēram,

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

Šeit mēs esam izmantojuši super()Suņa konstruktora iekšpusi, lai piekļūtu Dzīvnieka konstruktoram.

Ņemiet vērā, ka tam supervienmēr jābūt apakšklases konstruktora pirmajam apgalvojumam. Apmeklējiet Java super atslēgvārdu, lai uzzinātu vairāk.

Java abstrakcija

Galvenais abstrakto klašu un metožu pielietojums ir panākt abstrakciju Java.

Abstraction is an important concept of object-oriented programming that allows us to hide unnecessary details and only show the needed information.

This allows us to manage complexity by omitting or hiding details with a simpler, higher-level idea.

A practical example of abstraction can be motorbike brakes. We know what brake does. When we apply the brake, the motorbike will stop. However, the working of the brake is kept hidden from us.

The major advantage of hiding the working of the brake is that now the manufacturer can implement brake differently for different motorbikes, however, what brake does will be the same.

Let's take an example that helps us to better understand Java abstraction.

Example 3: Java Abstraction

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

Output:

 Bark bark 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).
  • Klasei, kurā ir abstraktas metodes, jābūt arī abstraktai.
  • Mēs nevaram izveidot abstraktas klases objektus.
  • Lai ieviestu abstraktas klases iezīmes, mēs no tās mantojam apakšklases un izveidojam apakšklases objektus.
  • Apakšklasei ir jānoņem visas abstraktās klases abstraktās metodes. Tomēr, ja apakšklase tiek pasludināta par abstraktu, nav obligāti jāatspoguļo abstraktās metodes.
  • Izmantojot abstraktās klases atsauci, mēs varam piekļūt abstraktās klases statiskajiem atribūtiem un metodēm. Piemēram,
     Animal.staticMethod();

Interesanti raksti...