Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Neuerungen in PHP 5  Teil von  OOP und PHP 5
Professional CronJob-Service

Suche

International PHP Conference


WebTech Conference


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 
PHP Summit


Software Architecture Summit


:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
HTML5 Days


JavaScript Days


:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Abstraktion von Klassen und Methoden: Seite 1

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Werden Klassen oder Methoden als abstract gekennzeichnet, wird der Benutzer explizit dazu aufgefordert, hier eigenen Code zu schreiben. Somit ist abstract das genaue Gegenteil von final – statt des ausdrücklichen Verbots folgt nun das ausdrückliche Gebot. Der Entwickler der Klassen gibt damit Struktur, Namen und Aufbau vor, nicht jedoch die konkrete Implementierung, da dies möglicherweise von der Anwendung abhängt.

Eine Ableitung von Objekten von abstrakten Klassen ist nicht möglich. Es muss deshalb immer eine Implementierung erfolgen. Dies gilt auch für abstrakte Methoden. Es ist jedoch möglich, eine Klasse als abstrakt zu definieren und einige der Methoden bereits voll auszuformulieren.

<?php

// Durch abstract wird die Klasse für direkte
// Aufrufe blockiert
abstract class SuperKlasse {
  // Die Variable $wert mit protected verriegeln
  protected $wert = 5;

  // Funktionsname zur Vererbung freigeben
  abstract function ausgabe();

  function multiplitzieren($eingabe) {
     return $eingabe*$this->wert;
  }
}

// Unterklasse (Subklasse)
class ErweiterteKlasse extends SuperKlasse {
  // RICHTIG
  function ausgabe() {
    // Die Funktion ist der Abstract-Klasse bekannt und kann
    // somit auf sie zugreifen!
    return $this->multiplitzieren(10);
  }

  // FALSCH
  function ausgeben() {
    // Dies kann nicht funktionieren, da die Funktion
    // ausgeben() der Abstract-KLASSE nicht bekannt ist!
    return $this->multiplitzieren(10);
  }

}

// Aufruf der extends-Klasse
$testObjekt = new ErweiterteKlasse();

// Nicht vergessen! Die Funktion ausgabe() kann nur
// bei der extends(vererbten)-Klasse aufgerufen werden,
// nicht bei der Superklasse, die mit abstract
// verriegelt wurde!
echo  $testObjekt->ausgabe();

?>

Ausgabe
50

Beispiel

<?php
// mit abstract die Klasse für direkte Aufrufe blocken
abstract class Fahrzeug {
  // Variable $tueren mit protected verriegeln
  protected $tueren = 4;

  // Gebe Methodenname zur Vererbung Frei
  abstract function ausgabe();

  function starten($wert) {    
     return  $wert . " mit " . $this->tueren . " Türen wurde gestartet!";
  }
}

// Erstelle Subklasse und nehme mit extens die abstract-OberKlasse
class PKW extends Fahrzeug {
  // RICHTIG
  function ausgabe() {
    // Die Funktion ist der abstrakten Klasse bekannt und
  // kann somit auf sie zugreifen!
    return $this->starten("PKW");
  }
  
  // FALSCH
  function abfahren() {
    // Das kann nicht funktionieren, da die Funktion
    // abfahren() der abstrakten Klasse nicht bekannt
  // ist!
    return $this->starten("PKW");
  }
}

// Aufruf der Klasse
$meinpkw = new PKW();

// Achtung: Die Funktion ausgabe() kann lediglich bei der
// extends (vererbten) Klasse aufgerufen werden, nicht bei
// der Oberklasse, die mit abstract verriegelt ist!
echo  $meinpkw->ausgabe();

?>




Finale Klassen und Methoden
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 

:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Dateien/Verzeichnisse mit Bzip2 entpacken

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Die WHERE-Klausel eines MySQL-Querys verneinen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2014 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de