Eine Klassendeklaration mit dem Wort Final wird als finale Klasse bezeichnet. Die letzte Klasse in Java kann nicht vererbt und nicht durch andere Klassen erweitert werden. Eine Abschlussklasse kann andere Klassen erweitern; Es kann eine Unterklasse, aber keine Oberklasse sein. Beim Erstellen einer unveränderlichen Klasse ist die letzte Klasse die beste Antwort. Die letzte Klasse ist eine Deklaration, die besagt, dass sie endgültig ist, d. h. diese Klasse hat keine Unterklasse und kann nicht weiter erweitert werden. Die letzte Klasse behält neben der Unveränderlichkeit noch etwas mehr Bedeutung.
Manchmal empfiehlt es sich, aus Sicherheitsgründen die letzte Klasse zu verwenden, da einige Klassen sicherheitsrelevante Dinge wie Authentifizierung und Autorisierung durchführen. In einem solchen Szenario sollten Zeichenfolgen und Methoden innerhalb der Klasse während des gesamten Lebenszyklus der Anwendung nicht geändert werden. Dann ist es besser, die Klasse endgültig zu machen.
WERBUNG Beliebter Kurs in dieser Kategorie FINANZMODELLIERUNG & BEWERTUNG – Spezialisierung | 51 Kursreihe | 30 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Das Erstellen der Klasse „Final“ verbessert die Effizienz der Anwendung.
Syntax:
final class Student { private int age = 3; } /* // Trying to inherit the Student class class Info extends Student{ public static void main(String[] args) { //creating instance of the HeavyVehicle class System.out.println(“I am unable to inherit the class with the final keyword”); } }
Die oben angegebene Klasse mit dem letzten Wort ist endgültig. Das Erweitern dieser letzten Klasse um eine andere führt zu Fehlern wie „Fehler: Kann nicht vom letzten Schüler erben“, wie im folgenden Screenshot dargestellt.
Beim Deklarieren einer Klasse mit dem Schlüsselwort final ermöglicht es JVM, Annahmen zu treffen und Optimierungen vorzunehmen. Sobald Sie das Schlüsselwort final zu einer Klasse in Java hinzugefügt haben, kann die Referenz für diese Klasse nicht mehr geändert werden. Der Compiler prüft, ob eine erneute Referenzierung stattfindet, was zu einem Fehler führt.
Was passiert, wenn wir eine Klasse als final deklarieren und eine finale Klasse instanziieren? Dann wird es im Poolbereich angelegt; Im Pool erstellte Objekte verfügen über eine spezielle Unveränderlichkeitsfunktion. Einige der besten Beispiele für unveränderliche Java-Klassen sind String, Integer, Double usw.
Wenn Sie eine Klasse als final deklarieren, werden implizit alle Methoden dieser Klasse als final deklariert. Das Finale ist ein Modifikator in Java; Sie können das Schlüsselwort final für eine Variable, Methode oder Klasse verwenden. Sobald der Modifikator der Klasse hinzugefügt wurde, wären alle Variablen und Methoden dieser Klasse implizit unveränderlich. Die Unveränderlichkeit einer Klasse bietet mehrere Vorteile, z. B. ist sie schreibgeschützt und kann ohne Synchronisierung nicht sicher in mehreren Threads geteilt werden.
Gegeben sind die folgenden Beispiele der Final-Klasse in Java:
Die HeavyVehicle-Klasse erlaubt keine Vererbung im angegebenen Programm, da sie als letzte Klasse deklariert ist.
Code:
//This class will not be extended final class HeavyVehicle{ void messages(){ System.out.println("Your Vehicle Insurance is going to be expire in the next month"); } } // Inheriting HeavyVehicle class is not allowed as it is a final class /*class Vehicle extends HeavyVehicle{ } */ //main class class Car{ public static void main(String[] args) { //creating instance of the HeavyVehicle class HeavyVehicle hvObj = new HeavyVehicle(); hvObj.messages(); } }
Wenn wir versuchen, die HeavyVehicle-Klasse zu erben, erhalten wir die folgende Fehlermeldung, wie im Screenshot unten dargestellt.
Jetzt gehen wir zur nächsten Klasse über, wo wir eine Instanz der letzten Klasse erstellen, um deren Methode zu verwenden. Unten sehen Sie die Ausgabe des Programms nach dem Überspringen des Vererbungsprozesses.
In diesem Programm wird die HeavyVehicle-Klasse als letzte Klasse deklariert, sodass sie nicht in der anderen Klasse erweitert werden kann, sodass sie ihren Verweis explizit an die Vehicle-Klassenmethode übergibt.
Code:
//This class will not be extended final class HeavyVehicle{ public double getDistanceCanCover(int mileage, double fuelStatus) { return mileage * fuelStatus; } } class Vehicle{ private int mileage; private double fuelStatus; Vehicle(int mileage, double fuelStatus){ this.mileage = mileage; this.fuelStatus = fuelStatus; } public void DisplayDistanceCanCover(HeavyVehicle hvObj) { double distCanCover = hvObj.getDistanceCanCover(this.mileage, this.fuelStatus); System.out.println("Distance Vehicle can cover in the available fuel: " + distCanCover); } } //main class class Car { public static void main(String[] args) { //creating instance of the HeavyVehicle class HeavyVehicle hvObj = new HeavyVehicle(); //creating instance of the Vehicle class Vehicle vehObj = new Vehicle(30, 3.5); //calling the method of the vehObj.DisplayDistanceCanCover(hvObj); } }
Im oben genannten Beispiel können wir sehen, wie eine Abschlussklasse effektiv genutzt werden kann. Die Ausgabe des oben angegebenen Programms ist unten angegeben.
Ausgabe:
In diesem Beispiel erbt die letzte Klasse die andere Klasse, d. h. Student, aber keine andere Klasse kann die Info-Klasse erweitern, da es sich um eine letzte Klasse handelt.
Code:
class Student{ public void showDetails(String name, String email, int age) { System.out.println("\nStudent Name : "+ name); System.out.println("\nStudent Email : "+ email); System.out.println("\nStudent Age : "+ age); } } // Trying to inherit the Student class final class Info extends Student{ //main method of java to start program execution public static void main(String[] args) { //creating instance of this class Info infoObj = new Info(); //calling here method of the parent class infoObj.showDetails("Alex Carry", "[email protected]", 40); } }
Ausgabe:
Im oben genannten Artikel haben wir die Bedeutung der Final-Klasse in Java erläutert. Ich habe auch überprüft, dass die letzte Klasse in Java häufig als unveränderliche Klasse bezeichnet wird. Mir sind einige wesentliche Punkte im Zusammenhang mit der Erklärung einer Abschlussklasse aufgefallen. Im gegebenen Beispiel können wir sehen, wie die letzte Klasse effektiv in anderen Klassen verwendet werden kann, indem sie durch Referenzen übergeben wird.
Das obige ist der detaillierte Inhalt vonAbschlussklasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!