abstract

Aus php bar

Wechseln zu: Navigation, Suche

Mit abstract (dt. Kurz- oder Zusammenfassung) werden Klassen oder Methoden erstellt die nur eine art 'Vorschau' auf die eigentliche Implementierung sind. Methoden die als abstract defniert werden, müssen in einer abgeleiteten Klasse überschrieben werden. Da 'abstracte' Methoden keine Funktion implementieren sondern lediglich die Signatur der Methode darstellen, ähnlich einer Schnittstelle.
Klassen die abstracte Methoden beinhalten müssen ebenfalls selber abstract sein.

 abstract class Logger_DB
 {
     // Signatur für zu überschreibende Methode
     abstract protected function insertQuery( $line );
 
     // in allen Logger_DB_* Klassen identische Methode
     public function write( $line )
     {
         $this->insertQuery( $line )
10     }
11 }
12 
13 class Logger_DB_Mysql extends Logger_DB
14 {
15     // überschreibe Signatur mit kompletter Methode
16     protected function insertQuery( $line )
17     {
18         mysql_query( 'INSERT INTO `table` SET `log_entry` = ' . $line );
19     }
20 }


Fatal Error:

1 $logger = new Logger_DB;
2 $logger->write( 'Error 10123' );


Richtig:

1 $logger = new Logger_DB_Mysql;
2 $logger->write( 'Error 10123' );



Persönliche Werkzeuge