• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Array Reference assignment

 
Anup Om
Ranch Hand
Posts: 62
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Considering Animal is the superclass of Dog

when I say


An array object is created. Its reference is assigned to a.
This array object can hold three references to Animal.

What is it when I say



Thanks in advance for help.
 
Maciej Drozdzowski
Ranch Hand
Posts: 40
Google Web Toolkit Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
an array object holding three references to Animal - so you can refer to them only by Animal reference, unless you do a cast. inside, it's 3 Dog objects.
a Dog object can also be referenced by an Animal reference, cause Dog-IS-A-Animal
 
Henry Wong
author
Marshal
Pie
Posts: 21420
84
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Anu Kota wrote:
What is it when I say



In Java, arrays have an hierarchy which mirrors the elements that they contain. Meaning a Dog array IS-A Animal array, since a Dog IS-A Animal. This is why you can assign a Dog array to an Animal array reference.

IMO, you should try to avoid this, because a dog array isn't really an animal array. For example, an animal array can hold cat objects too. If you try to assign a Cat element to the array referred to by reference b, the compiler will allow it, in this case (and yes, it will fail at runtime).

Henry
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic