File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Why no Polymorphism for instance variables

 
Barkat Mardhani
Ranch Hand
Posts: 787
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Why following code is printing B,10? Why not B,20?
 
Ron Newman
Ranch Hand
Posts: 1056
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Instance variable access is determined by the declared type, not the actual type. Polymorphism is only for instance methods.
 
Naveed Ali
Ranch Hand
Posts: 41
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All!
This is my first post.
Ron, first what do you mean by actual & declared type.Second in this case (in my view) it should call method b.callme().So how it went to 'a'.
 
Barkat Mardhani
Ranch Hand
Posts: 787
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Naveed:
A a = new B();
The declared type is on the left of variable a i.e. A in this case. So rest of the world (I mean program) will see that type of a is A. However, an object of type B is being refered by a. This is actual type of a. So when you call a method on A, the overridden version in the B will be invoked -- which is generally known as polymorphism.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic