Previous | Next | Trail Map | Writing Java Programs | Objects, Classes, and Interfaces


Creating Subclasses

You declare that a class is the subclass of another class within The Class Declaration. For example, suppose that you wanted to create a subclass, ImaginaryNumber, of the Number class. (The Number class is part of the java.lang package and is the base class for Integers, Floats and other numbers.) You would write:
class SubClass extends SuperClass {
    . . .
}
This declares that SubClass is the subclass of the Superclass class. It also implicitly declares that SuperClass is the superclass of SubClass. A subclass also inherits variables and methods from its superclass's superclass, and so on up the inheritance tree. For purposes of making our discussion easier, when this tutorial refers to a class's superclass it means the class's direct ancestor as well as all of its ascendant classes.

Creating a subclass can be as simple as including the extends clause in your class declaration (such as in the declaration in ImaginaryNumber above). However, you usually have to make other provisions in your code when subclassing a class, such as overriding methods.

What Member Variables Does a Subclass Inherit?


Rule:A subclass inherits all of the member variables within its superclass that are accessible to that subclass (unless the member variable is hidden by the subclass).
That is, subclasses [PENDING: show example]

Hiding Member Variables

As mentioned in the previous section, member variables defined in the subclass hide member variables of the same name in the superclass.

[PENDING: example of why this might be useful].

While this feature of the Java language is powerful and convenient, it can be a fruitful source of errors: hiding a member variable can be done deliberately or by accident. So, when naming your member variables be careful to only hide those member variables that you actually wish to hide.

One interesting feature of Java member variables is that a class can access a hidden member variable through its superclass:

[PENDING: provide good example here and rewrite next couple of para's to match]

For example, also named anInteger, then the variable declaration within IntegerClass hides the declaration in the superclass. You can still access the superclass's anInteger with:

super.anInteger
super is a Java language keyword that allows a method to refer to hidden variables and overriden methods of the superclass.

What Methods Does a Subclass Inherit?

The rule that specifies which methods get inherited by a subclass is similar to that for member variables.
Rule:A subclass inherits all of the methods within its superclass that are accessible to that subclass (unless the method is overriden by the subclass).
That is, subclasses [PENDING: show example]

Overriding Methods

The ability of a subclass to override a method in its superclass allows a class to inherit from a superclass whose behavior is "close enough" and then supplement or modify the behavior of that superclass.


Previous | Next | Trail Map | Writing Java Programs | Objects, Classes, and Interfaces