Java klasa i metoda sažetka (s primjerom)

U ovom uputstvu uz primjere ćemo naučiti o Java apstraktnim klasama i metodama. Također ćemo naučiti o apstrakciji u Javi.

Apstraktni razred Java

Apstraktna klasa u Javi ne može se instancirati (ne možemo stvoriti objekte apstraktnih klasa). Koristimo abstractključnu riječ za deklariranje apstraktne klase. Na primjer,

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

Apstraktna klasa može imati i regularne metode i apstraktne metode. Na primjer,

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

Da biste saznali više o apstraktnim metodama, posjetite Java metode. Ovdje ćemo naučiti o apstraktnim metodama.

Java apstraktna metoda

Metoda koja nema svoje tijelo poznata je kao apstraktna metoda. Istu abstractključnu riječ koristimo za stvaranje apstraktnih metoda. Na primjer,

 abstract void display();

Evo display()apstraktne metode. Tijelo display()je zamijenjeno s ;.

Ako razred sadrži apstraktnu metodu, tada bi klasu trebalo proglasiti apstraktnom. Inače će generirati pogrešku. Na primjer,

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

Primjer: Java sažetak klase i metode

Iako se apstraktne klase ne mogu instancirati, iz njih možemo stvoriti potklase. Tada možemo pristupiti članovima apstraktne klase pomoću objekta podklase. Na primjer,

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

Izlaz

 Ovo je Java programiranje

U gornjem primjeru stvorili smo apstraktni razred pod nazivom Jezik. Predaja sadrži redovnu metodu display().

Stvorili smo glavnu klasu koja nasljeđuje apstraktnu klasu. Primijetite izjavu,

 obj.display();

Ovdje je obj objekt podređene klase Main. Pozivamo metodu apstraktne klase pomoću objekta obj.

Primjena apstraktnih metoda

Ako apstraktna klasa uključuje bilo koju apstraktnu metodu, tada sve podređene klase naslijeđene od apstraktne superklase moraju osigurati provedbu apstraktne metode. Na primjer,

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

Izlaz

 Kora kore koju mogu jesti.

U gornjem primjeru stvorili smo apstraktnu klasu Životinja. Predavanje sadrži apstraktnu makeSound()i neastraktnu metodu eat().

Naslijedili smo podrazred Pas od superrazreda Životinja. Ovdje podrazred Pas pruža primjenu apstraktne metode makeSound().

Zatim smo koristili objekt d1 klase Dog za pozivanje metoda makeSound()i eat().

Napomena : Ako klasa Dog ne pruža implementaciju apstraktne metode makeSound(), Dog bi također trebao biti proglašen apstraktnim. To je zato što podrazred pas nasljeđuje makeSound()od životinje.

Pristupa konstruktoru apstraktne nastave

Apstraktna klasa može imati konstruktore poput redovite klase. Konstruktoru apstraktne klase možemo pristupiti iz podklase pomoću superključne riječi. Na primjer,

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

Ovdje smo koristili super()unutarnji konstruktor Psa za pristup konstruktoru Životinje.

Imajte na umu da superbi uvijek trebao biti prvi izraz konstruktora podklase. Posjetite Java super ključnu riječ da biste saznali više.

Java apstrakcija

Glavna upotreba apstraktnih klasa i metoda je postizanje apstrakcije u Javi.

Apstrakcija je važan koncept objektno orijentiranog programiranja koji nam omogućuje skrivanje nepotrebnih detalja i prikazivanje samo potrebnih informacija.

To nam omogućuje upravljanje složenošću izostavljanjem ili skrivanjem detalja s jednostavnijom idejom više razine.

Praktični primjer apstrakcije mogu biti motorne kočnice. Znamo što čini kočnica. Kad pritisnemo kočnicu, motocikl će se zaustaviti. Međutim, rad kočnice skriven je od nas.

Glavna prednost skrivanja rada kočnice je u tome što sada proizvođač može različito primijeniti kočnicu za različite motore, međutim, ono što kočnica bude jednako.

Uzmimo primjer koji nam pomaže da bolje razumijemo Java apstrakciju.

Primjer 3: Java apstrakcija

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

Izlaz :

 Kora kore 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).
  • Predavanje koja sadrži apstraktne metode također bi trebalo biti apstraktno.
  • Ne možemo stvoriti objekte apstraktne klase.
  • Da bismo implementirali značajke apstraktne klase, nasljeđujemo podklase iz nje i stvaramo objekte potklase.
  • Podrazred mora nadjačati sve apstraktne metode apstraktne klase. Međutim, ako je podrazred proglašen apstraktnim, nije obavezno nadjačati apstraktne metode.
  • Statičkim atributima i metodama apstraktne klase možemo pristupiti pomoću reference apstraktne klase. Na primjer,
     Animal.staticMethod();

Zanimljivi članci...