Win a copy of Create an Uber Clone in 7 Days: Build a real world full stack mobile app in Java this week in the Android forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

overriding conecpt(please help me)  RSS feed

 
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I am arulraj, i have one doubt in the following code:

class A
{
int x=10;
}
class B
{
int x=20;
}

A a= new B();
System.out.println("value ofx:"+a.x);

What is the output of x?

I thought it will be 20 ,but jvm gives 10...



with respect to overriding, this is ok.... (the method in class b will be called). but for variable, it provide reverse opertion.........

May i know the reason that why is pointing to X containing in class A instead of B.
 
Ranch Hand
Posts: 81
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The answer lies in runtime binding. For methods except private methods, JVM at runtime determines the actual type of a reference and invokes the appropriate method on the object. For instance variable, the binding is at compile time.

Hence the VM at compile time resolves reference a as a type A and thus displays 10.
 
arulraj michealraj
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks.............
 
What are you doing? You are supposed to be reading this tiny ad!
Why should you try IntelliJ IDEA ?
https://coderanch.com/wiki/696337/IntelliJ-IDEA
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!