WernerK: Sinn Interfaces?

Beitrag lesen

Hallo,

danke an alle für die Erklärung.

Ein Interface ist eine Art Versicherung/Vertrag, dass die Klasse, die das Interface implementiert, alle Mitglieder des Interfaces implementiert hat.

hm. ok. Um nochmals bei dem Beispiel von mir zu bleiben.

  
interface IHaustier {  
 // Die Methode wird über das Interface nur vorgeschrieben,  
 // daher darf sie keinen Inhalt haben.  
 public function getName();  
}

Die Funktion "getName()" im Interface macht ja erst mal nichts.

Die Klasse Hund unten nutzt das Interface IHaustier. Aber trotzdem muss man nochmals dieselbe Funktion in der Klasse aufführen bzw. schreiben.

  
class Hund implements IHaustier {  
        private $name;  
  
        public function __construct($name) {  
            $this->name = $name;  
        }  
  
        // Die vom Interface IHaustier verlangte Methode  
        public function getName() {  
            return $this->name;  
        }  
    }  

Mehr Sinn würde es für mich machen, wenn die Funktion im Interface schon etwas "macht" und man in der jeweiligen Funktion nicht nochmals die Funktion schreiben muss. Also etwa so;

  
interface IHaustier {  
 // Die Methode wird über das Interface nur vorgeschrieben,  
 // daher darf sie keinen Inhalt haben.  
 public function getName() {  
            return $this->name;  
        }  
}

Gruss
Werner