O'Reilly logo

PHP 5 Kochbuch, Third Edition by Stephan Schmidt, Ulrich Speidel, Matthias Brusdeylins, Carsten Lucke, Adam Trachtenberg, David Sklar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.5 Änderungen an Klassen und Methoden verhindern

Problem

Sie möchten verhindern, dass andere Entwickler bestimmte Methoden in einer Kindklasse neu definieren oder überhaupt Kindklassen von der Klasse ableiten.

Lösung

Markieren Sie die entsprechenden Methoden oder Klassen als final:

final public function connect($server, $username, $password) {
     // Methodendefinition
}

und:

final class MySQL {
     // Klassendefinition
}

Diskussion

Eigentlich ist die Vererbung eine gute Sache. Trotzdem kann es sinnvoll sein, sie einzuschränken.

Einer der besten Gründe dafür, eine Methode als final zu deklarieren, ist, dass tatsächlich eine Gefahr besteht, wenn jemand sie überschreibt – beispielsweise Datenkorruption, eine Race-Condition oder ein möglicher Absturz oder Aufhänger, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required