This week's book giveaway is in the Java in General forum.
We're giving away four copies of Event Streams in Action and have Alexander Dean & Valentin Crettaz on-line!
See this thread for details.
Win a copy of Event Streams in Action this week in the Java in General forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Devaka Cooray
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Knute Snortum
  • Rob Spoor
Saloon Keepers:
  • Tim Moores
  • Ron McLeod
  • Piet Souris
  • Stephan van Hulst
  • Carey Brown
Bartenders:
  • Tim Holloway
  • Frits Walraven
  • Ganesh Patekar

variable overriding

 
Ranch Hand
Posts: 238
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What will happen when you attempt to compile and run the following code?

public class MyField{
int i=99;
public static void main(String argv[]){
MyField m = new MyField();
m.amethod();
}

void amethod(){
int i;
System.out.println(i);
}

}
1) The value 99 will be output
2) The value 0 will be output
3) Compile time error
4) Run time error




I was reading above question from link
http://www.jchq.net/certkey/0405certkey.htm

did not understand it clearly.

cannot we override class level variables with method variables
Any ideas, resources,sample code,links, highly appreciated. thanks in advance.
 
author
Posts: 23835
140
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

cannot we override class level variables with method variables



Static variables (ie. class variables) can't be overridden. Local variables (ie. method variables) can't be overridden. In fact, variables of any kind can't be overridden.

Overriding is for methods. Specifically instance methods, where the method of the base class is accessible to the subclass.

Henry
 
Greenhorn
Posts: 20
jQuery Eclipse IDE Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The variables can not be override, the behavior that allows named a inner variable as same as an outer variable is called shadowing.

That code doesn't compile because you are using a local variable without initialized it



 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!