Ch. 09
is-a relationship
This relationship represents inheritance. In this relationship, an object of a subclass can also be treated as an object of its superclass—e.g., a car is a vehicle
True, a subclass can access non-private members of its superclass
True or False: A subclass cannot access the private members of its superclass, but it can access the non-private members.
Protected
Inheriting ( public / protected / private ) instance variables enables direct access to the variables by subclasses. Choose one from the paren list.
Private
Inheriting protected instance variables enables direct access to the variables by subclasses. In most cases, however, it's better to use ( public / protected / private ) instance variables to encourage proper software engineering. Choose one from the paren list.
True
True or False: A subclass can become a superclass for future subclasses.
True
True or False: A superclass's protected members are accessible by all subclasses of that superclass.
True
True or False: All public and protected superclass members retain their original access modifier when they become members of the subclass.
False. The correct answer is: Not every class relationship is an inheritance relationship.
True or False: Every class relationship is an inheritance relationship.
False, the correct answer is: Declaring a subclass does not affect its superclass's source code. Inheritance preserves the integrity of the superclass.
True or False: Declaring a subclass affects its superclass's source code. Inheritance does not preserve the integrity of the superclass
class hierarchy
defines the inheritance relationships among classes
Inheritance
"____" is a form of software reusability in which new classes acquire the members of existing classes and embellish those classes with new capabilities
1. Single Inheritance 2. This means that each class is derived from exactly one direct superclass.
1. Which type of inheritance does Java support. 2. What does this mean?
1. subclass 2. superclass
A 1.( subclass / superclass ) can customize methods that it inherits from its 2.( subclass / superclass ).
inheritance hierarchy
A sample class hierarchy is also sometimes called an...
more
A subclass can add its own fields and methods. Therefore, a subclass is ( more / less ) specific than its superclass and represents a more specialized group of objects.
overrides
A subclass can customize methods that it inherits from its superclass. To do this, the subclass "____" or (redefines) the superclass method with an appropriate implementation
public and protected
A superclass's "____" and "____" members can be accessed in the superclass declaration AND in subclass declaration
public
A superclass's "____" members are accessible anywhere that the program has a reference to an object of that superclass or to an object of one of its subclasses.
protected
A superclass's "____" members can be accessed by members of that superclass, by members of its subclasses and by members of other classes in the *same package*
private
A superclass's ( public / protected / private ) members can be accessed directly only within the superclasses declaration. Choose one from the paren list.
has a reference to an object of that superclass or one of its subclasses
A superclass's public members are accessible wherever the program....
Deep Copy
A typical overridden clone method's implementation would perform a "____" "____" that creates a *new object* for *each* reference-type instance variable.
overridden
An "____" superclass method can be accessed from a subclass if the superclass method name is preceded by "super" and a dot ( . ) separator
indirect superclass
An "_____" "_____" is any class above the direct superclass in the class hierarchy
No, they are not!
Are constructors inherited?
getClass
Every object in Java knows its own type at execution time. Which method returns an object of class Class (package java.lang) that contains information about the object's type, such as its class name
No, a superclass is not an object of its subclasses
Every object of a subclass is also an object of that class's superclass. Is a superclass then an object of its subclasses?
By using the superclass constructor call syntax -- keyword super, followed by a set of parentheses containing the superclass constructor arguments EX: super(firstName, lastName, socialSecurityNumber, grossSales, commissionRate);
How does a subclass call one of its superclass's constructors?
By expressing their common capabilities in the superclass's members.
How is it possible to treat superclass objects and subclass objects similarly?
Yes, they can be!
If constructors are not inherited, can they still be available to be called by subclasses?
Object
In Java, the class hierarchy begins with class "____", which every class in Java directly or indirectly extends (or inherits)
'has-a' or composition
In a(n) "____" relationship, a class object of has references to objects of other classes as members
'is-a' or inheritance
In a(n) "____" relationship, an object of a subclass can also be treated as an object of its superclass.
superclass services
In practice, subclasses should depend only on the "____" "____" (i.e., non-private methods) and not on the superclass data implementation.
hierarchical
In single inheritance, a class exists in a(n) "____" relationship with its subclasses
is-a
Objects of all classes that extend a common superclass can be treated as objects of that superclass—such objects have an "____" relationship with the superclass.
Package access
Protected members are said to have what type of access?
Inheritance
Reduces program-development time
super.
Subclass constructors can class superclass constructors via the "____" keyword
1. public 2. protected
Subclass methods can refer to ( public / protected / private ) members inherited from the superclass simply by using the member names. Choose two from the paren list.
Inheritance
Technique in which a new class is created by acquiring an existing class's members and possibly embellishing them with new or modified capabilities
direct superclass
The "_____" "_____" is the superclass from which the subclass explicitly inherits.
1. subclass 2. subclass
The 1.( subclass / superclass ) exhibits the behaviors of its 2.( subclass / superclass ) and can modify those behaviors so that they operate appropriately for the subclass.
specialization
The subclass exhibits the behaviors of its superclass and can modify those behaviors so that they operate appropriately for the subclass. This is why inheritance is sometimes referred to as "_____".
Single-inheritance relationships
These relationships form treelike structures -- a superclass exists in a hierarchical relationship with its subclasses
private members
These superclass members are hidden in its subclasses and can be accessed only through the public or protected methods inherited from the superclass.
protected members
These superclass members can be accessed by members of the superclass, by members of its subclasses, and by members of other classes in the *same package*.
@Overrride
This annotation indicates that a method should override a superclass method
super()
This is rarely done, but... When a *superclass* contains a no-argument constructor, you can use "____" to call that constructor *explicitly*
equals
This method compares two objects for equality and returns true if they're equal and false otherwise.
toString methods
This method is primarily a placeholder that can be overridden by a subclass to specify an appropriate String representation of the data in a subclass object.
toString
This method returns a String representation of an object
hashCode
This method uses int values used for high-speed storage and retrieval of information stored in a data structure that's known as a hashtable
finalize
This protected method is called by the garbage collector to perform termination housekeeping on an object just before the garbage collector reclaims the object's memory.
clone
This protected method, which takes no arguments and returns an Object reference, makes a copy of the object on which it's called.
has-a relationship
This relationship represents *composition*. In this relationship, an object contains as members references to other objects— e.g., a car has a steering wheel (and a car object has a reference to a steering-wheel object)
protected
Using "____" access offers an intermedi- ate level of access between public and private.
To call its direct superclass's constructor to ensure that the instance variables inherited from the superclass are initialized.
What is the first task of a subclass constructor?
implicitly
When an object is output using the %s format specifier, the objects toString method is called ( implicitly / explicitly ) to obtain its String representation.
constructor
When an object of a subclass is instantiated, a superclass "____" is called implicitly or explicitly
1. superclass 2. subclass
When creating a class, rather than declaring completely new members, you can designate that the new class should inherit the members of an existing class. The existing class is called the "___(1)___", and the new class is the "____(2)____".
To ensure that the instance variable inherited from the superclass are initialized properly
Why does Java require that the first task of any subclass constructor is to call its direct superclass's constructor, either explicitly or implicitly (if no constructor call is specified)?
To initialize the instance variables inherited from the superclass.
Why must each subclass constructor must implicitly or explicitly call one of its superclass's constructors?
Superclass
With inheritance, the instance variables and methods that are the same for all the classes in the hierarchy are declared in a ( subclass / superclass )
fragile or brittle
a class is said to be "____" or "____", because a small change in the superclass can "break" subclass implementation.
up
if the superclass is derived from another class, the superclass constructor invokes the constructor of the next class ( up / down ) the hierarchy, and so on.
Shallow Copy
instance-variable values in one object are copied into another object of the same type.
subclass
instantiating a ( subclass / superclass ) object begins a chain of constructor calls in which the subclass constructor, before performing its own tasks, explicitly uses super to call one of the constructors in its direct superclass or implicitly calls the superclass's default or no-argument constructor