„Java“ santraukos klasė ir metodas (su pavyzdžiu)

Šioje pamokoje su pavyzdžių pagalba sužinosime apie „Java“ abstraktias klases ir metodus. Taip pat sužinosime apie abstrakciją „Java“.

Java santraukos klasė

Abstrakčios klasės „Java“ negalima sukurti iš karto (mes negalime sukurti abstrakčių klasių objektų). Raktinį abstractžodį naudojame abstrakčiai klasei deklaruoti. Pavyzdžiui,

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

Abstrakti klasė gali turėti ir įprastus metodus, ir abstrakčius metodus. Pavyzdžiui,

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

Norėdami sužinoti apie ne abstrakčius metodus, apsilankykite „Java“ metoduose. Čia sužinosime apie abstrakčius metodus.

Java santraukos metodas

Metodas, neturintis savo kūno, yra žinomas kaip abstraktus metodas. Mes naudojame tą patį abstractraktinį žodį kurdami abstrakčius metodus. Pavyzdžiui,

 abstract void display();

Čia display()yra abstraktus metodas. Kūnas display()pakeičiamas ;.

Jei klasėje yra abstraktus metodas, klasė turėtų būti paskelbta abstrakčia. Priešingu atveju tai sukurs klaidą. Pavyzdžiui,

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

Pavyzdys: „Java“ santraukos klasė ir metodas

Nors abstrakčių klasių negalima sukurti, galime iš jų sukurti poklasius. Tada mes galime pasiekti abstrakčios klasės narius naudodami poklasio objektą. Pavyzdžiui,

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

Rezultatas

 Tai yra „Java“ programavimas

Ankstesniame pavyzdyje mes sukūrėme abstrakčią klasę pavadinimu Kalba. Klasėje yra įprastas metodas display().

Mes sukūrėme pagrindinę klasę, kuri paveldi abstrakčią klasę. Atkreipkite dėmesį į pareiškimą,

 obj.display();

Čia obj yra pagrindinės vaikų klasės objektas. Abstrakčios klasės metodą vadiname objektu obj.

Abstrakčių metodų įgyvendinimas

Jei abstrakčioje klasėje yra koks nors abstraktus metodas, tada visos abstraktaus klasės klasėje paveldėtos vaikų klasės turi užtikrinti abstrakčiojo metodo įgyvendinimą. Pavyzdžiui,

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

Rezultatas

 Žievės žievė, kurią galiu valgyti.

Aukščiau pateiktame pavyzdyje sukūrėme abstrakčią klasę „Gyvūnas“. Klasėje yra abstraktus metodas makeSound()ir ne abstraktus metodas eat().

Mes paveldėjome poklasį Šunį iš superklasės Gyvūno. Čia poklasis Šuo pateikia abstrakčiojo metodo įgyvendinimą makeSound().

Tada mes naudojome „Dog“ klasės objektą d1 metodams iškviesti makeSound()ir eat().

Pastaba : jei šuns klasėje nėra abstraktaus metodo įgyvendinimo makeSound(), šuo taip pat turėtų būti paskelbtas abstrakčiu. Taip yra todėl, kad poklasis Šuo paveldi makeSound()iš Gyvūno.

Prieiga prie abstrakčių klasių konstruktoriaus

Abstrakti klasė gali turėti tokius konstruktorius kaip įprasta klasė. Ir mes galime pasiekti abstrakčios klasės konstruktorių iš poklasio, naudodami superraktinį žodį. Pavyzdžiui,

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

Čia mes panaudojome super()šuns konstruktorių viduje, kad galėtume pasiekti gyvūną.

Atkreipkite dėmesį, kad tai supervisada turėtų būti pirmasis poklasio konstruktoriaus sakinys. Norėdami sužinoti daugiau, apsilankykite „Java super“ raktiniame žodyje.

Java Abstrakcija

Pagrindinis abstrakčių klasių ir metodų naudojimas yra pasiekti abstrakciją Java.

Abstrakcija yra svarbi objektinio programavimo samprata, leidžianti paslėpti nereikalingas detales ir parodyti tik reikalingą informaciją.

Tai leidžia mums valdyti sudėtingumą, praleisdami arba paslėpdami detales su paprastesne, aukštesnio lygio idėja.

Praktinis abstrakcijos pavyzdys gali būti motociklų stabdžiai. Mes žinome, ką veikia stabdžiai. Kai paspausime stabdį, motociklas sustos. Tačiau stabdžių veikimas yra slepiamas nuo mūsų.

Pagrindinis stabdžių veikimo slėpimo privalumas yra tas, kad dabar gamintojas gali skirtingai pritaikyti stabdžius skirtingiems motociklams, tačiau tai, kas veikia, bus tas pats.

Paimkime pavyzdį, kuris padeda mums geriau suprasti Java abstrakciją.

3 pavyzdys: „Java“ abstrakcija

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

Išvestis :

 Žievės žievė Miau

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).
  • Abstrakčių metodų turinti klasė taip pat turėtų būti abstrakti.
  • Mes negalime sukurti abstrakčios klasės objektų.
  • Norėdami įgyvendinti abstrakčios klasės ypatybes, mes paveldime iš jos poklasius ir kuriame poklasio objektus.
  • Poklasis turi nepaisyti visų abstrakčių klasės abstrakčių metodų. Tačiau jei poklasis paskelbtas abstrakčiu, abstrakčių metodų nepaisyti nėra privaloma.
  • Mes galime pasiekti abstrakčios klasės statinius atributus ir metodus, naudodami abstrakčios klasės nuorodą. Pavyzdžiui,
     Animal.staticMethod();

Įdomios straipsniai...