Das Schlüsselwort final
selbst bedeutet, dass etwas endgültig ist und in keiner Weise geändert werden darf. Wenn eine Klasse als final
dann kann sie nicht erweitert oder unterklassifiziert werden. Die Frage ist aber, warum wir eine Klasse als final
? IMO gibt es dafür verschiedene Gründe:
- Standardisierung: Einige Klassen führen Standardfunktionen aus, die nicht geändert werden sollen, z. B. Klassen, die verschiedene Funktionen im Zusammenhang mit Stringmanipulationen oder mathematischen Funktionen usw. ausführen.
- Sicherheitsgründe : Manchmal schreiben wir Klassen, die verschiedene Authentifizierungs- und Kennwortfunktionen ausführen, und wir wollen nicht, dass sie von jemand anderem geändert werden.
Ich habe gehört, dass die Benotung der Klasse final
die Effizienz verbessert, aber ehrlich gesagt konnte ich diesem Argument nicht viel Gewicht beimessen.
Wenn Java objektorientiert ist und Sie eine Klasse als final deklarieren, nicht die Idee, dass Klassen die Eigenschaften von Objekten haben?
Vielleicht ja, aber manchmal ist das der beabsichtigte Zweck. Manchmal tun wir das, um größere Vorteile bei der Sicherheit usw. zu erreichen, indem wir die Fähigkeit dieser Klasse, erweitert zu werden, opfern. Aber eine finale Klasse kann immer noch eine Klasse erweitern, wenn sie es muss.
Nebenbei bemerkt sollten wir Komposition der Vererbung vorziehen y final
Schlüsselwort hilft bei der Durchsetzung dieses Grundsatzes.