This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Difference between Private and Final Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Difference between Private and Final" Watch "Difference between Private and Final" New topic
Author

Difference between Private and Final

Naty wills
Greenhorn

Joined: Sep 20, 2005
Posts: 15
Hi all,
I am confused abt the use of Final and private keyword in java.
Are both use to prevent overridding??
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24183
    
  34

The purpose of "private" is to promote encapsulation. Member variables should almost always be private; class A should not be trying to touch the member data of class B.

"final" has a few different meanings. Applied to a variable, it prevents changes to the variable after initialization, making it a "constant." Applied to a method, it does, indeed, prevent overriding. Applied to a class, it prevents the class from being extended. All of these meanings have something in common: they allow the programmer to have fairly strong beliefs about the value or purpose of something. If you know a class can never be extended, then you know for sure how an instance of the class will behave -- you know you're not dealing with a subclass that changes something, since you know no subclasses can exist. This helps with both engineering and security.
[ September 05, 2006: Message edited by: Ernest Friedman-Hill ]

[Jess in Action][AskingGoodQuestions]
Burkhard Hassel
Ranch Hand

Joined: Aug 25, 2006
Posts: 1274
Hi all,
This is about final/private in methods only.

final does not allow overriding of methods. If you do, you'll get a compiler error.

private methods are not visible outside their classes. So when you extend a class, you can give a method the same declaration as in the upper class. It is a redefinition (no override!) with no relation to the upper class method.
Especially no polymorphism.
Example



The bar method is only necessary to call foo from outside its class.


Outputs 3* ALPHA
Remove the private (-> default public or protected) and you'll have polymophic output.
make it final (in class Alpha), you'll get a compiler error in class Beta.


Yours,
Bu.



ps: upper class methods can also be wearing large hats at a horse race or polo match.


all events occur in real time
Naty wills
Greenhorn

Joined: Sep 20, 2005
Posts: 15
Thanks a lot for prompt answers..
Now all my doubts are cleared..
supriya riya
Ranch Hand

Joined: Feb 23, 2009
Posts: 41
This explanation helped a lot.
S Nirmal
Greenhorn

Joined: Nov 23, 2012
Posts: 1
difference between private and final method helped a lot. Thank you.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 37945
    
  22
Welcome to the Ranch

It is nice to think that these old posts can still be useful.
 
 
subject: Difference between Private and Final
 
Similar Threads
Which access modifier should you use for constants?
preventing subclassing
Private Final Method
private method
final & private together