2.4 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 12.) 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 colors, rather than simply using the default colors as the method in DrawableRect did.

Example 2-4. ColoredRect.java
package je3.classes; import java.awt.*; /**  * This class subclasses DrawableRect and adds colors to the rectangle it draws  **/ public class ColoredRect extends DrawableRect {     // These are new fields defined by this class.      // x1, y1, x2, and y2 are inherited from our super-superclass, Rect.     protected Color border, fill;          /**      * This constructor uses super( ) to invoke the superclass constructor, and      * also does some initialization of its own.      **/     public ColoredRect(int x1, int y1, int x2, int y2,                        Color border, Color fill)     {         super(x1, y1, x2, y2);         this.border = border;         this.fill = fill;     }          /**      * This method overrides the draw( ) method of our superclass so that it      * can make use of the colors that have been specified.      **/     public void draw(Graphics g) {         g.setColor(fill);         g.fillRect(x1, y1, (x2-x1), (y2-y1));         g.setColor(border);         g.drawRect(x1, y1, (x2-x1), (y2-y1));     } }


Java Examples in a Nutshell
Java Examples in a Nutshell, 3rd Edition
ISBN: 0596006209
EAN: 2147483647
Year: 2003
Pages: 285

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net