Metoda abstractă

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică , o metodă abstractă este o metodă fără implementare [1] (definită într-o clasă abstractă ), urmată întotdeauna de un punct și virgulă, care reprezintă o operație generală. Adesea, metodele abstracte au una sau mai multe implementări furnizate separat, de exemplu, sub formă de subclase concrete, care pot include metode abstracte sau proprietăți abstracte care sunt împărtășite de subtipurile sale. O metodă non-abstractă, pe de altă parte, se numește concret (sau clasă concretă). Metodele abstracte pot fi numite și existențiale.

O clasă care definește o metodă abstractă sau care moștenește o metodă abstractă fără a o suprascrie trebuie declarată abstractă .

Exemple (Java)

 public abstract class Automobile {
      public abstract String brand ();
      public abstract String fuel ();
         // Metode abstracte de tip String
      public abstract int deplacement ();
         // metoda abstractă de tip int
      preț public dublu abstract ();
         // metoda abstractă de tip double
   }

Un alt exemplu ar putea fi o metodă ipotetică a zonei () din clasa Polygon: deși se poate spune că aria fiecărui poligon poate fi calculată, este posibil să nu fie ușor să scrieți instrucțiunile care efectuează efectiv acest calcul în termeni atât de generali. . Pe de altă parte, acest calcul poate fi ușor introdus în implementările subclaselor specifice de poligon, cum ar fi dreptunghiul. Prin declararea metodei zonei din clasa Polygon ca metodă abstractă, indicăm că toate poligoanele, adică toate subclasele Polygon, trebuie să aibă acea operație și, în același timp, nu este furnizată (implementată) în corpul clasei. Consecința este că fiecare subclasă va trebui neapărat să ofere propria sa implementare a metodei prin suprascriere, adică să redefinească o metodă moștenită dintr-o superclasă dintr-o subclasă.

Caracteristicile metodelor abstracte

  • O metodă abstractă nu are implementare (practic este definit doar prototipul său, deoarece este de competența subclasei să implementeze corect metoda);
  • Dacă o metodă abstractă este extinsă, aceasta va fi moștenită ;
  • Doar clasele și interfețele abstracte pot conține metode abstracte.

Notă

  1. ^ Michael T. Goodrich, Roberto Tamassia, Structuri de date și algoritmi în Java , Bologna, Zanichelli Editore , 2007, p. 13, ISBN 978-88-08-07037-1 .

Elemente conexe

  1. Clasa abstractă
  2. Constructor (IT)
  3. Obiect (computer)

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT