63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
---
|
|
title: Final
|
|
---
|
|
|
|
## final
|
|
You use the `final` keyword to mark a variable constant, so that it can be assigned only once. So you must initialize a final variable with a value. If its not initialized (when declared, inside Constructor or inside static blocks), compile time error will occur.
|
|
|
|
***Example:***
|
|
```java
|
|
class MyClass {
|
|
public static final double PI = 3.14;
|
|
public static void main(String[] args){
|
|
System.out.println(PI);
|
|
}
|
|
}
|
|
```
|
|
PI is now a constant. Any attempt to reassign the value for PI will cause an error.
|
|
|
|
-----------------------------------------------------------------------------------------
|
|
If you make any method as final, you cannot override it.
|
|
```java
|
|
class Bike{
|
|
final void run(){System.out.println("running");}
|
|
}
|
|
|
|
class Honda extends Bike{
|
|
void run(){System.out.println("running safely with 100kmph");}
|
|
|
|
public static void main(String args[]){
|
|
Honda honda= new Honda();
|
|
honda.run();
|
|
}
|
|
}
|
|
```
|
|
|
|
Output wil be -
|
|
Output:Compile Time Error
|
|
|
|
---------------------------------------------------------------------------------------
|
|
|
|
|
|
If you make any class as final, you cannot extend it.
|
|
|
|
```java
|
|
final class Bike{}
|
|
|
|
class Honda1 extends Bike{
|
|
void run(){System.out.println("running safely with 100kmph");}
|
|
|
|
public static void main(String args[]){
|
|
Honda1 honda= new Honda();
|
|
honda.run();
|
|
}
|
|
}
|
|
```
|
|
|
|
Output will be-
|
|
Output:Compile Time Error
|
|
|
|
#### More Information:
|
|
- [Oracle Java Docs - final variables](https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4)
|
|
|