English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Non puoi piùSovrascrittura Quindi, non puoi fornire un'implementazione del metodo finale della superclasse dalla sottoclasse.
Quindi, lo scopo di rendere un metodo finale è prevenire la modifica del metodo dall'esterno (sottoclasse).
Ma, se provi a sovrascrivere un metodo finale, verrà generato un errore durante la compilazione.
interface Person{ void dsplay(); } class Employee implements Person{ public final void dsplay() { System.out.println("Questa è il metodo di visualizzazione della classe Employee"); } } class Lecturer extends Employee{ public void dsplay() { System.out.println("Questa è il metodo di visualizzazione della classe Lecturer"); } } public class FinalExample {}} public static void main(String args[]) { Lecturer obj = new Lecturer(); obj.dsplay(); } }
Risultato di output
Employee.java:10: error: dsplay() in Lecturer cannot override dsplay() in Employee public void dsplay() { ^ Il metodo sovrascritto è finale 1 error
Nell'ereditarietà, ogni volta che si estende una classe. La sottoclasse eredita tutti i membri della superclasse tranne il costruttore.
In altre parole, il costruttore non può essere ereditato in Java, quindi non si puòSovrascritturaCostruttore
Quindi, scrivere final prima del costruttore non ha senso. Quindi, Java non permette di usare la parola chiave final prima del costruttore.
Se si tenta di fare questo, rendere il costruttore finale genera un errore di compilazione, che indica "Il modificatore final non è permesso qui".
Nel seguente programma Java, la classe Student ha un costruttore finale.
public class Student { public final String name; public final int age; public final Student() this.name = "Raju"; this.age = 20; } public void display() { System.out.println("Nome dello studente: " + this.name); System.out.println("Età dello studente: " + this.age); } public static void main(String args[]) { new Student().display(); } }
Durante la compilazione, il programma sopra genera gli errori seguenti.
Student.java:6: error: modifier final not allowed here public final Student() ^ 1 error