• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

variable overriding

 
Mathew Lee
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.
 
Henry Wong
author
Marshal
Pie
Posts: 21024
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor 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
 
Frankely Diaz
Greenhorn
Posts: 20
Eclipse IDE Java jQuery
  • 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



 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic