Inheritance Problem

You are to write 3 classes and a client program to test your classes. You should have


Ship, CruiseShip, and CargoShip Classes Design a Ship class that the following members:
• A field for the name of the ship (a string).
• A field for the year that the ship was built (a string).
• A constructor and appropriate accessors and mutators.
• A toString method that displays the ship’s name and the year it was built.


Design a CruiseShip class that extends the Ship class. The CruiseShip class should have the following members:
• A field for the maximum number of passengers (an int).
• A constructor and appropriate accessors and mutators.
• A toString method that overrides the toString method in the base class.
The CruiseShip class’s toString method should display only the ship’s name and the maximum number of passengers.


Design a CargoShip class that extends the Ship class. The CargoShip class should have the following members:
• A field for the cargo capacity in tonnage (an int).
• A constructor and appropriate accessors and mutators.
• A toString method that overrides the toString method in the base class.
The CargoShip class’s toString method should display only the ship’s name and the ship’s cargo capacity.


Demonstrate the classes in a program that has a Shiparray. Assign various Ship, CruiseShip, and CargoShip objects to the array elements. The program should then step through the array, calling each object’s toString method.


import java.io.*;
import java.util.*;

public class shipmain
{private ArrayList ar = new ArrayList<Ship>();
public void smain() throws IOException
{
ar.add(new Ship("Ship 1","1920"));
ar.add(new CruiseShip("Cruise 1","2000",2345));
ar.add(new Ship("Ship 2","1987"));
ar.add(new Ship("Ship 3","1981"));
ar.add(new CargoShip("Cargo 1","1983",3456));
ar.add(new CruiseShip("Cruise 2","1960",4888));
ar.add(new CargoShip("Cargo 2","1954",5500));

for (Ship n : ar)
{System.out.println(n);
}
}
}