The final modifier and Javafinal modifier in Java
1. When can I select the final modifier?
If you want to prevent a class from being inherited by other classes and are not allowed to have child classes, you should consider using final for modification.
2. Classes modified with final
First, you must understand that the class modified with final cannot be inherited. Let's look at an error case.
Eg:
final class Penguin{}class SubPenguin extends Penguin{}
In this case, the class SubPenguin extends Penguin line of code will report an error:
The type SubPenguin cannot subclass the final class
That is, the. Penguin class cannot be inherited.
3. final modification method
Eg:
Class Penguin {public final void print () {}} class Subpenguin extends Penguin {public void print () {}// error}
In this case, the public void print () {} code returns an error with the error message:
Cannot override the final method from Penguin
That is, the. print method cannot be overwritten by the quilt class.
4. Variables modified with final
Variables modified with final include member variables and local variables. They will become constants and can only be assigned once.
Public class Dog {final String name = "Xiao Huang"; // use final to modify the Dog's name public void setname (String name) {this. name = name; // error. name cannot be assigned .}}
5. Notes for using the final Modifier
Final can be used to modify classes, methods, and attributes. It cannot modify constructor methods.
6. Can the attribute values of objects referred to by variables be changed in referenced variables modified with final?
First, let's look at a simple example.
// Dog class public class Dog {String name; // name of the Dog // with parameters. Assign the Dog name public Dog (String name) {this. name = name ;}// Test class Test {public static void main (String [] args) {final Dog = new dog ("Xiao Huang "); // instantiate a dog object and use final to modify the dog. name = "rhubarb"; dog = new Dog (" ");}}
In this Code, the dog object is modified to final as a constant, and its value is immutable, but it should be noted that it is dog. name = "rhubarb"; this line of code is not wrong, so dog = new Dog ("small eight") is wrong, that is, the reference variable modified with final, A variable cannot point to another object, but its content can be changed.
Conclusion: When Using final modified referenced variables, the value of the variables remains unchanged, and the attribute values of the objects referred to by the variables are variable.