<< Chapter < Page Chapter >> Page >

Answers

Answer 15

C. 1.0 2.0

Explanation 15

This is an upgrade of the program from Question 14 . This program applies the proper downcast operator to the references extracted from the array of type Object before attempting to call the method named getData on those references. (For more information, see the discussion of Question 14 .)

As a result of applying a proper downcast, the program compiles and runs successfully.

Back to Question 15

Answer 14

A. Compiler Error

Explanation 14

Storing references in a generic array of type Object

This program stores references to two objects instantiated from a new class named MyClass in the elements of an array object of declared type Object . That is OK.

Calling a method on the references

Then the program extracts the references to the two objects and attempts to call the method named getData on each of the references. That is not OK.

Downcast is required

Because the method named getData is not defined in the class named Object , in order to call this method on references extracted from an array of type Object , it is necessary to downcast the references to the class in which the method isdefined. In this case, the method is defined in the new class named MyClass (but it could be defined in an intermediate class in the class hierarchy if the newclass extended some class further down the hierarchy) .

Here is a partial listing of the compiler error produced by this program:

Ap062.java:15: error: cannot find symbol A[0].getData() + " " + ^symbol: method getData() location: class Object

Back to Question 14

Answer 13

D. None of the above.

Explanation 13

The array object of type Object in this program is capable of storing a reference to a new object instantiated from the new class named MyClass . However, because the new class does not override the toString method, when a string representation of the new object is displayed, the stringrepresentation is created using the version of the toString method that is inherited from the Object class. That causes this program to produce an output similar to the following:

Zero 1 MyClass@273d3c

Back to Question 13

Answer 12

C. Zero 1 2.0

Explanation 12

A type-generic array object

As explained in Question 11 , an array object of the type Object is a generic array that can be used to store references to objects instantiated from anyclass.

Storing mixed reference types

This program instantiates objects from the classes String , Integer , and Double , and stores those objects' references inthe elements of an array of type Object . Then the program accesses the references and uses them to display string representations of each of theobjects.

Polymorphic behavior applies

Once again, polymorphic behavior involving overridden versions of the toString method were involved and it was not necessary to downcast the references to their true type to display string representations of the objects.

Back to Question 12

Answer 11

C. Zero One Two

Explanation 11

Storing references to subclass types

When you create an array object for a type defined by a class definition, the elements of the array can be used to store references to objects of that classor any subclass of that class.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask