Win a copy of Securing DevOps this week in the Security forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Array Reference assignment  RSS feed

 
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.
 
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
 
author
Sheriff
Posts: 23394
138
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
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!