+ 2
static vs final in Java
explain the basic difference between static and final with examples.
4 Answers
+ 4
final: Once a final variable has been assigned, it always contains the same value - it can not be changed
static: a static variable can change as often as you re-asign a value - and you do not need to object of a class to access it, you can access it using the class-name
An example is the value PI of the class Math, you can simple access it with
Math.PI
withouth the need of creating a Object of the Math Class
A combination of both is possible, let's take PI of the Java Math class again as example.
If you look up the source code of java.lang.Math you will see:
public static final double PI = 3.14159265358979323846;
which means:
- PI can be accessed without the need of having an object of the Math class since it is static
- PI can not be changed because it is final
+ 2
Some stuff that was not said:
static actually makes the member bounce to the class itself. As a result, you cannot override them (But can 'hide' them). Since it becomes bound to the class you can also access it how @Martin put it. (Although, you don't need to do that unless you're in a different class).
* Keep in mind, inside a static method you cannot access a non-static method without an instance of the class.*
final for variables is exactly as @Martin put it.
Final methods on the other hand, cannot be overrided, and cannot be hidden.
Final classes cannot be sub-classed. This is because all members become final, so the purpose of a sub-class becomes meaningless.
0
OK gd answer.
0
Got a clarity on overriding (static and final). thank-you for ur time