Klassenobjekt verändern bzw. Bedingungen hinzufügen mit extends.

xtramen01

Erfahrenes Mitglied
Hallo Leute,

ich habe mal eine grundsätzliche Frage zu extends.
Also der Vererbung von Klassen.

Wenn ich mittels extends eine Vererbung erstelle, ist es mir dann möglich, die Ausgabe eines Objektes der Elternklasse anzupassen?
Prinzipiell möchte ich diverse Bedingungen im Objekt ändern, was natürlich dann die Ausgabe beeinflusst. Geht das?

Gruß und Danke
 
Grüße,

das kannst du durchaus machen.
Du könntest z.B. eine komplett anders aussehende Ausgabe anfertigen (durch Überschreiben der Methode) und dann trotzdem auf die Variablen der Elternklasse zugreifen:

PHP:
<?php
class klasse1 {
	public $text = "hallo";
	
	public function test() {
		echo"".$this->text."<br>";	
	}	
}

class klasse2 extends klasse1 {
	
	# Funktion hier mit neuer Ausgabe überschreiben
	public function test() {
		echo"<font>Es folgt die Ausgabe: <br></font>".parent::$this->text."<br>";	
	}		
}

$test = new klasse2();
$test->test();
?>

Ich hoffe das läuft in etwa in die Richtung, in die du willst.
Das geht natürlich nur wenn die Variablen in der Elternklasse 'public' oder 'protected' sind.
Du solltest aber mit solchen Vorhaben aufpassen, da man da ganz schön böse Dinge mit anstellen kann...:eek:
 
@Alex_T:

Das ist genau das was ich gemeint hatte.
Ich wusste nicht das dies so geht.
Natürlich bin ich mir dem Risiko bewusst und werde die Klasse entsprechend designen.
Danke dafür!

Gruß
 
PHP:
class Klasse{
    private $text;

    public function getText(){
        return $this->text;
    }

    public function setText($newValue){
        //TODO: $newValue prüfen und ggf ablehnen
        $this->text = $newValue;
    }
}
 
Zurück