Java मे Final क्या होता है ?
java programming language मे बहुत सारे keywords होते हैं, उनमे से एक keyword final keyword होता है । हर एक keyword का एक स्पेशल work होता है । keywords reserved words होते हैं जिनको हम method या variable के नाम के लिए use नहीं कर सकते । final keyword को हम method, vaiable या class के नाम के आगे place कर सकते हैं। फ़ाइनल keyword user को restriction provide करता है। जिस method, variable या class के आगे final keyword use किया जाता है वो normal method, variable या class की तरह behaviour नहीं कर पाती । तो आइए जानते हैं की क्या होता है जब हम final keyword को किसी method, varibale या class के आगे लगाते हैं।
1. Final Variable :
किसी variable को final बनाने से उस varibale की value constant हो जाती है । final variable की values को change नहीं किया जा सकता है। अगर हम final variable की value को change करने की कोशिश करते हैं तो compilation error generate होती है ।
code for final variable :
class FinalVar
{
final int speedlimit=90;//final variable
void run()
{
speedlimit=400;
}
public static void main(String args[])
{
FinalVar obj=new FinalVar();
System.out.println("final value of speed limit is"+obj.speedlimit);
}
}
इस प्रोग्राम को जब compile करते हैं तो error generate होती है, जो की इस प्रकार है :-
इस मे line number 6 पर error है की फ़ाइनल variable की वैल्यू को change या कुछ और assign नहीं किया जा सकता है ।
2. Final Method:
जब किसी method को final बनाया जाता है तो उस method को override नहीं किया जा सकता । inheritance मे subclass superclass की method को override कर सकती है। same नाम की method को subclass के द्वारा override किया जाता है। लेकिन यदि method को फ़ाइनल बना दिया जाए तो उसको override नहीं किया जा सकता । इसको एक example की मदद से समझते हैं ।
code for final method:-
class Bike
{
final void run()
{
System.out.println("running");
}
}
class FinalMethod extends Bike
{
void run()
{
System.out.println("running safely with 100kmph");
}
public static void main(String args[])
{
FinalMethod honda= new FinalMethod();
honda.run();
}
}
इस program मे run method final है और usko FinalMethod subclass मे override करने की कोशिश की जा रही है, लेकिन यहाँ error generate होती है। वो error इस प्रकार है:-
यहाँ पर error है की final method को subclass के द्वारा override नहीं किया जा सकता।
Final class:
जब किसी class को final बनाया जाता है तो उस क्लास को inherit नहीं किया जा सकता , उस क्लास को extend करके दूसरी क्लास नहीं बनाई जा सकती । इसको भी एक example से समझते हैं ।
code for final class:-
final class Bike
{
void run()
{
System.out.println("running my bike");
}
}
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();
}
}
यहाँ सुपर class Bike है जो की final है। इसको inherit या extend नहीं किया जा सकता , जबकि honda क्लास bike क्लास को extend कर रही है, यहाँ पर क्या error generate होती है देखते हैं :-
यहाँ error है की final class bike को inherit नहीं किया जा सकता है ।
final keyword restrictions provide करते हैं, और प्रोग्राममिंग मे कई बार restrict करना बहुत जरूरी हो जाता है ।
No comments