// This class represents a generic order.  It is the superclass
// of the BuyOrder, SellOrder, and CancelOrder classes.
abstract class Order {
    protected int orderNumber; 
    private static int latestOrderNumber = 0; 

    // Construct new Order object
    public Order() {
        orderNumber = ++latestOrderNumber;
    }

    // print current object
    public void print() {
        System.out.println (toString()); 
    }

    // return the integer order number
    public int getOrderNumber() {
        return orderNumber;
    }

    // return String that represents this object
    public String toString() {
        return "Order #" + orderNumber; 
    }

    // define abstract method which will be implemented
    // by any class that extends this class
    abstract public boolean isGood();
}

