Java Reference
In-Depth Information
Example 2•2: RectTest.java (continued)
") is inside the union");
// These lines implicitly call the Rect.toString() method
System.out.println(r1 + " union " + r2 + " = " + u);
System.out.println(r1 + " intersect " + r2 + " = " + i);
}
}
A Rect Subclass
Example 2-3 is a simple subclass of the
Rect
class of Example 2-1. This
Draw-
ableRect
class inherits the fields and methods of
Rect
and adds its own method,
draw()
, that draws a rectangle using a specified
java.awt.Graphics
object. (We'll
see more of the
Graphics
object in Chapter 11,
Graphics
.)
DrawableRect
also
defines a constructor that doesn'thing more than pass its arguments on to the cor-
responding
Rect
constructor. Note the use of the
extends
keyword to indicate that
Rect
is the superclass of
DrawableRect
.
Example 2•3: DrawableRect.java
package com.davidflanagan.examples.classes;
/**
* This is a subclass of Rect that allows itself to be drawn on a screen.
* It inherits all the fields and methods of Rect
* It relies on the java.awt.Graphics object to perform the drawing.
**/
public class DrawableRect extends Rect {
/** The DrawableRect constructor just invokes the Rect() constructor */
public DrawableRect(int x1, int y1, int x2, int y2) { super(x1,y1,x2,y2); }
/** This is the new method defined by DrawableRect */
public void draw(java.awt.Graphics g) {
g.drawRect(x1, y1, (x2 - x1), (y2-y1));
}
}
Another Subclass
Example 2-4 shows another subclass.
ColoredRect
is a subclass of
DrawableRect
(see Example 2-3), which makes it a sub-subclass of
Rect
(see Example 2-1). This
class inherits the fields and methods of
DrawableRect
and of
Rect
(and of
Object
,
which is the implicit superclass of
Rect
).
ColoredRect
adds two new fields that
specify the border color and fill color of the rectangle when it is drawn. (These
fields are of type
java.awt.Color
, which we'll learn about in Chapter 11.) The
class also defines a new constructor that allows these fields to be initialized.
Finally,
ColoredRect
overrides the
draw()
method of the
DrawableRect
class. The
draw()
method defined by
ColoredRect
draws a rectangle using the specified col-
ors, rather than simply using the default colors as the method in
DrawableRect
did.