//ABSTRACT CLASS vehicle DEFINES INTEGER speed // AND METHOD getspeed() WHICH ARE INHERITED BY // ANY (SUB)CLASS WHICH EXTENDS vehicle (e.g., car, boat). // THE CONSTRUCTOR OF vehicle IS NOT CALLED. THE SUBCLASS // USES THE KEYWORD super TO CALL vehicle's CONSTRUCTOR // vehicle(int x) TO SET THE SPEED OF A VEHICLE. public abstract class vehicle{ protected int speed; public vehicle(int x){ speed = x; } public int getspeed() { return speed; } } //CLASS car IS A SUBCLASS OF vehicle public class car extends vehicle{ // VARIBLES WHICH ARE PARTICULAR TO A car. public int numwheels; public int drivers; // CONSTRUCTOR public car(int x, int y){ super(x); numwheels = y; } // METHOD TO RETURN THE NUMBER OF DRIVERS public int drive(int z){ return (drivers=z); } } //CLASS boat IS A SUBCLASS OF vehicle public class boat extends vehicle{ // VARIABLE WHICH IS PARTICULAR TO boat public String model; //CONSTRUCTOR public boat(int x, String str){ super(x); model = str; } } //CLASS vintage IS A SUBCLASS OF car AND ALSO //OF vehicle public class vintage extends car{ //VARIABLES WHICH ARE PARTICULAR TO vintage private int year; protected String name; //CONSTRUCTOR // super(x,y) CALLS THE CONSTRUCTOR OF car WHICH IN TURN // CALLS THE CONSTRUCTOR OF vehicle WITH super(x) public vintage(int x, int y, int z, String str){ super(x,y); year = z; name = str; } public int age() { return (2001 - year); } }