1.
Which of the following statements is false?
Correct Answer
B. A superclass object is a subclass object.
Explanation
The given statement "A superclass object is a subclass object" is false. In object-oriented programming, a superclass is a class from which other classes, called subclasses, inherit properties and methods. A subclass can have additional properties and methods that are not present in the superclass. Therefore, a superclass object cannot be a subclass object because it does not have the additional properties and methods defined in the subclass.
2.
Inheritance is also known as the
Correct Answer
D. “is-a” relationship.
Explanation
The correct answer is "is-a" relationship because inheritance in object-oriented programming represents a relationship between classes where one class inherits the properties and behaviors of another class. This relationship implies that the inheriting class is a specialized version of the inherited class, indicating an "is-a" relationship.
3.
Which of the following is not a superclass/subclass relationship?
Correct Answer
C. Sailboat/Tugboat
Explanation
The relationship between a sailboat and a tugboat is not a superclass/subclass relationship because they are not related in terms of inheritance or specialization. A superclass/subclass relationship implies that one class is a more specific version or specialization of another class. In this case, a sailboat and a tugboat are different types of boats with different purposes and characteristics, rather than one being a specialized version of the other.
4.
: An advantage of inheritance is that:
Correct Answer
C. Objects of a subclass can be treated like objects of their superclass.
Explanation
Inheritance allows objects of a subclass to be treated like objects of their superclass. This means that a subclass can inherit the properties and behaviors of its superclass, allowing it to access and use the same methods and variables. This promotes code reuse and allows for more efficient and organized programming, as subclasses can inherit and build upon the functionality of their superclass without having to redefine it.
5.
Which of the following keywords allows a subclass to access a superclass method even when the subclass has overridden the superclass method?
Correct Answer
D. Super
Explanation
The keyword "super" allows a subclass to access a superclass method even when the subclass has overridden the superclass method. By using "super" keyword, the subclass can invoke the superclass method and perform additional operations or modifications on it. This is useful when the subclass wants to extend the functionality of the superclass method without completely overriding it.
6.
Using the protected keyword gives a member:
Correct Answer
B. B. package access.
Explanation
The protected keyword in Java gives a member package access, meaning that it can be accessed by any class within the same package. This means that the member is not accessible to classes in different packages, but can be accessed by any class within the same package, including subclasses.
7.
Superclass methods with this level of access cannot be called from subclasses.
Correct Answer
A. A. private.
Explanation
Superclass methods with private access cannot be called from subclasses. The private access modifier restricts access to only within the same class, so subclasses cannot access these methods.
8.
Every class in Java, except ________, extends an existing class.
Correct Answer
B. B. Object.
Explanation
Every class in Java, except Object, extends an existing class. The Object class is the root of the class hierarchy in Java and serves as the base class for all other classes. This means that all other classes directly or indirectly inherit from the Object class. Therefore, the correct answer is b. Object.
9.
Overriding a method differs from overloading a method because:
Correct Answer
B. B. Overridden methods have the same signature.
Explanation
Overriding a method means providing a different implementation of a method in a subclass, while keeping the same method signature as the method in the superclass. In other words, the overridden method in the subclass has the same name, return type, and parameters as the method in the superclass. On the other hand, overloading a method means having multiple methods with the same name but different parameters in the same class. Therefore, the correct answer is b. Overridden methods have the same signature.
10.
9.4.2 Q1: To avoid duplicating code, use ________, rather than ________.
Correct Answer
A. A. inheritance, the “copy-and-past” approach.
Explanation
Inheritance allows for code reuse by creating a new class that inherits the properties and methods of an existing class. This avoids duplicating code by allowing the new class to inherit the functionality of the existing class. On the other hand, the "copy-and-paste" approach involves manually copying and pasting code from one place to another, which can lead to code duplication and make maintenance and updates more difficult. Therefore, using inheritance instead of the "copy-and-paste" approach is recommended to avoid duplicating code.
11.
Consider the classes below, declared in the same file:class A { int a; public A() { a = 7; }}class B extends A { int b; public B() {b = 8; } }Which of the statements below is false?
Correct Answer
D. D. A reference of type A can be treated as a reference of type B.
Explanation
Inheritance allows a reference of a superclass type to refer to an object of a subclass type. Therefore, a reference of type A can be treated as a reference of type B. This is known as upcasting.
12.
9.4.3 Q2: Which of the following is the superclass constructor call syntax?
Correct Answer
B. B. keyword super, followed by a set of parentheses containing the superclass constructor arguments.
Explanation
The correct answer is b. This is because when calling a superclass constructor, the syntax is "keyword super" followed by a set of parentheses containing the superclass constructor arguments. This allows the subclass to pass any necessary arguments to the superclass constructor. The other options are not the correct syntax for calling a superclass constructor.
13.
Which superclass members are inherited by all subclasses of that superclass?
Correct Answer
B. B. protected instance variables and methods.
Explanation
All subclasses of a superclass inherit the protected instance variables and methods of that superclass. Protected members are accessible within the same package and also by subclasses of the superclass, regardless of the package they are in. This allows subclasses to access and use the protected members inherited from the superclass. Private instance variables and methods are not inherited by subclasses, as they are only accessible within the class they are declared in. Private constructors are also not inherited, as constructors are not inherited at all.
14.
9.4.4 Q2: Which statement is true when a superclass has protected instance variables?
Correct Answer
D. D. All of the above.
Explanation
When a superclass has protected instance variables, it means that these variables can be accessed by the subclass. This allows the subclass object to assign invalid values to the superclass's instance variables, potentially leaving the object in an inconsistent state. Additionally, subclass methods are more likely to be written in a way that depends on the superclass's data implementation, meaning that any changes to the superclass's implementation may require modifications to all the subclasses. Therefore, all of the statements mentioned in options a, b, and c are true, making option d the correct answer.
15.
9.4.5 Q1: private fields of a superclass can be accessed in a subclass
Correct Answer
B. B. by calling public or protected methods declared in the superclass.
Explanation
Private fields of a superclass cannot be accessed directly in a subclass because they are not visible outside the class. However, they can be accessed indirectly by calling public or protected methods declared in the superclass. These methods can provide access to the private fields by returning their values or modifying them. Therefore, option b is the correct answer.
16.
Failure to prefix the superclass method name with the keyword super and a dot (.) separator when referencing the superclass’s method causes ________.
Correct Answer
C. C. infinite recursion.
Explanation
When referencing the superclass's method, if the keyword "super" and a dot (.) separator are not used to prefix the superclass method name, it will cause infinite recursion. This means that the method will keep calling itself indefinitely, leading to a stack overflow error.
17.
9.5 Q1: When a subclass constructor calls its superclass constructor, what happens if the superclass’s constructor does not assign a value to an instance variable?
Correct Answer
D. D. The program compiles and runs because the instance variables are initialized to their default values.
Explanation
If the superclass's constructor does not assign a value to an instance variable, the instance variable will be initialized to its default value. In Java, instance variables are automatically assigned default values if no explicit value is given. For example, numeric types are initialized to 0, boolean types are initialized to false, and object references are initialized to null. Therefore, the program will compile and run without any errors because the instance variables will still have valid default values.
18.
9.6 Q1: Which of the following statements is (are) true?A. We can use inheritance to customize existing software.B. A superclass specifies commonality.C. A superclass can be modified without modifying subclassesD. A subclass can be modified without modifying its superclass.
Correct Answer
A. A. All of the above.
Explanation
Inheritance allows us to customize existing software by creating subclasses that inherit properties and behaviors from a superclass. A superclass specifies commonality, meaning it contains shared properties and behaviors that can be inherited by subclasses. A superclass can be modified without affecting its subclasses, as long as the modifications do not change the inherited properties and behaviors. Similarly, a subclass can be modified without modifying its superclass, as long as the modifications are specific to the subclass and do not affect the inherited properties and behaviors. Therefore, all of the statements A, B, and D are true.
19.
9.6 Q2: Which of the following is an example of a functionality that should not be “factored out” to a superclass?
Correct Answer
C. C. All animals lay eggs, except for mammals.
Explanation
This functionality should not be factored out to a superclass because it is specific to a certain group of animals (mammals) and does not apply to all animals in general. Factoring it out to a superclass would result in incorrect behavior for mammals, as they do not lay eggs.
20.
9.7 Q1: The default implementation of method clone of Object performs a ________.
Correct Answer
D. D. shallow copy.
Explanation
The default implementation of the clone() method in the Object class performs a shallow copy. A shallow copy creates a new object and copies the non-static fields of the original object to the new object. However, if the field is a reference type, the reference is copied, not the actual object. This means that both the original object and the cloned object will refer to the same objects. Any changes made to the shared objects will be reflected in both the original and cloned objects.
21.
9.7 Q2: The default equals implementation determines:
Correct Answer
A. A. whether two references refer to the same object in memory.
Explanation
The default equals implementation in Java determines whether two references refer to the same object in memory. It checks if the memory addresses of the two objects are the same, indicating that they are the same object. It does not compare the values of the instance variables or the types of the objects.
22.
9.8 Q1: Class ________ represents an image that can be displayed on a JLabel.
Correct Answer
C. C. ImageIcon.
Explanation
The correct answer is c. ImageIcon. The ImageIcon class represents an image that can be displayed on a JLabel. It is used to create an icon from an image file and can be set as the icon for a JLabel component.
23.
9.8 Q2: Which method changes the text the label displays?
Correct Answer
B. B. setText.
Explanation
The method that changes the text the label displays is "setText". This method allows the programmer to update the text content of a label component in a graphical user interface. It takes a string as an argument and replaces the current text with the new specified text.