img
Using final to Prevent Inheritance
Sometimes you will want to prevent a class from being inherited. To do this, precede the
class declaration with final. Declaring a class as final implicitly declares all of its methods
as final, too. As you might expect, it is illegal to declare a class as both abstract and final
since an abstract class is incomplete by itself and relies upon its subclasses to provide
complete implementations.
Here is an example of a final class:
final class A {
// ...
}
// The following class is illegal.
class B extends A { // ERROR! Can't subclass A
// ...
}
As the comments imply, it is illegal for B to inherit A since A is declared as final.
The Object Class
There is one special class, Object, defined by Java. All other classes are subclasses of Object.
That is, Object is a superclass of all other classes. This means that a reference variable of type
Object can refer to an object of any other class. Also, since arrays are implemented as classes,
a variable of type Object can also refer to any array.
Object defines the following methods, which means that they are available in every object.
Method
Purpose
Object clone( )
Creates a new object that is the same as the object being cloned.
boolean equals(Object object)
Determines whether one object is equal to another.
void finalize( )
Called before an unused object is recycled.
Class getClass( )
Obtains the class of an object at run time.
int hashCode( )
Returns the hash code associated with the invoking object.
void notify( )
Resumes execution of a thread waiting on the invoking object.
void notifyAll( )
Resumes execution of all threads waiting on the invoking object.
String toString( )
Returns a string that describes the object.
Waits on another thread of execution.
void wait( )
void wait(long milliseconds)
void wait(long milliseconds,
int nanoseconds)
The methods getClass( ), notify( ), notifyAll( ), and wait( ) are declared as final.
Y o u may override the others. These methods are described elsewhere in this topic.
However, notice two methods now: equals( ) and toString( ). The equals( ) method
compares the contents of two objects. It returns true if the objects are equivalent, and
false otherwise.
Search WWH :
Custom Search
Previous Page
Java SE 6 Topic Index
Next Page
Java SE 6 Bookmarks
Home