Jaws, 120 min. available: true Star Wars, 90 min. available: true
The VideoTape class has basic information in it,
and would be OK for documentaries and instructional tapes.
But movies need more information.
Let us make a class that is similar to VideoTape,
but has the name of the director and a rating.
class VideoTape
{
String title; // name of the item
int length; // number of minutes
boolean avail; // is the tape in the store?
// constructor
public VideoTape( String ttl )
{
title = ttl; length = 90; avail = true;
}
// constructor
public VideoTape( String ttl, int lngth )
{
title = ttl; length = lngth; avail = true;
}
public void show()
{
System.out.println( title + ", " + length + " min. available:" + avail );
}
}
class Movie extends VideoTape
{
String director; // name of the director
String rating; // G, PG, R, or X
// constructor
public Movie( String ttl, int lngth, String dir, String rtng )
{
super( ttl, lngth ); // use the super class's constuctor
director = dir; rating = rtng; // initialize what's new to Movie
}
}
The class Movie is a subclass of VideoTape.
An object of type Movie has the following members in it:
member title inherited from VideoTape length inherited from VideoTape avail inherited from VideoTape show() inherited from VideoTape director defined in Movie rating defined in Movie
Both classes are defined: the VideoTape class can be used
to construct objects of that type, and now the Movie class
can be used to construct objects of the Movie type.