Abstractizare în Java



Abstractizarea este un proces de ascundere a detaliilor de implementare și de afișare a funcționalității utilizatorului.

O altă modalitate, arată utilizatorului doar lucruri esențiale și ascunde detaliile interne, de exemplu, trimiterea de SMS-uri unde introduceți textul și trimiteți mesajul. Nu știți procesarea internă despre livrarea mesajului.

Abstracția vă permite să vă concentrați asupra a ceea ce face obiectul în loc de modul în care îl face.

Există două moduri de a realiza abstractizarea în Java:

Clasă abstractă în Java

O clasă declarată abstractă este cunoscută sub numele de clasă abstractă. Poate avea metode abstracte și non-abstracte. Trebuie extins și metoda sa implementată. Nu poate fi instanțiat.

De reținut:

Sintaxa:

abstract class <nume_clasa>{}

Exemplu: În acest exemplu, Masina este o clasă abstractă care conține o singură metodă abstractă rulată. Implementarea sa este asigurată de clasa Honda.

Honda.java

public class Masina{
   void porneste();
}

public class Honda extends Masina{
   void porneste(){ System.out.println("conduceti cu grija"); }

   public static void main(String args[]){
      Masina obj = new Honda(); //cream obiectul
      obj.porneste(); //apelam metoda
   }
}

Afișare:

conduceti cu grija



Interfață în Java

O interfață în Java este un plan al unei clase. Are constante statice și metode abstracte.

Interfața în Java este un mecanism de realizare a abstractizării. Pot exista numai metode abstracte în interfața Java, nu corpul metodei. Este folosit pentru a realiza abstracția și moștenirea multiplă în Java.

Cu alte cuvinte, puteți spune că interfețele pot avea metode și variabile abstracte. Nu poate avea un corp de metodă.

Interfața Java reprezintă, de asemenea, relația ESTE-UN.

Nu poate fi instanțiat la fel ca clasa abstractă.

De la Java 8, putem avea metode implicite și statice într-o interfață.

De la Java 9, putem avea metode private într-o interfață.

De ce să folosim interfețele: Există în principal trei motive pentru a utiliza interfața. Acestea sunt prezentate mai jos.

Sintaxa:

interface <nume_interfata> {}

Exemplu: În acest exemplu, interfața imprimabilă are o singură metodă, iar implementarea sa este furnizată în clasa A6.

Honda.java

interface Printable{
   void afiseaza();
}

public class A6 implements Printable{
   public void afiseaza(){ System.out.println("Hello"); }

   public static void main(String args[]){
      Masina obj = new Honda();
      obj.porneste();
   }
}

Afișare:

Hello


Relația dintre clase și interfețe

Așa cum se arată în figura dată mai jos, o clasă extinde o altă clasă, o interfață extinde o altă interfață, dar o clasă implementează o interfață.

Dacă o clasă implementează mai multe interfețe sau o interfață extinde mai multe interfețe, este cunoscută sub numele de moștenire multiplă.