Kategorie szkoleń | Egzaminy | Kontakt

Odpowiedź (1)

  • 1

Cześć.

Interfejs to tak naprawdę mocno abstrakcyjna klasa. Może on mieścić tylko metody, które z założenia również są abstrakcyjne.

Najważniejsze różnice to:

  • W interfejsach wszystkie metody są abstrakcyjne, natomiast w klasie abstrakcyjnej można stworzyć metody posiadające ciało, jak i abstrakcyjne.
  • W PHP można dziedziczyć jedynie po jednej klasie, natomiast interfejsów, można implementować wiele. Ponadto interfejsy mogą dziedziczyć wiele interfejsów
  • Klasa abstrakcyjna zazwyczaj jest mocno związana z klasami dziedziczącymi w sensie logicznym, czyli np. tworzymy klasę abstrakcyjną Planeta po której dziedziczą konkretne klasy planet (np Ziemia, Mars). Interfejs natomiast nie musi być już tak mocno związany z daną klasą, on określa jej cechy, np możesz stworzyć interfejs Zniszczalny, który mówi że dany obiekt może zostać zniszczony. Taki interfejs możesz nadać zarówno klasą Planeta, Gwiazda, Budynek itp.
Grzegorz_Demski
  • Odpowiedział
  • @ Grzegorz_Demski | 06.03.2017
    • 1
    • 0
    • 0