Jaba programming


Ship, CruiseShip, CargoShip Classes, and Displayable Interface

Design an abstract Ship class that has 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 accessor and mutators.• A toString method that displays the ships 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, a copy 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, a copy constructor, and appropriate accessors and mutators.• 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.

In a driver program (shipDemo.java) 

• Demonstrate the classes in a Ship array. Assign various CruiseShip and CargoShip objects to the array elements. The program should then step through the array, calling each object’s display method. (polymorphism)• Create an ArrayList of Ship objects and add various CruiseShip and CargoShip objects to the array list. The program should then step through the array list, calling each object’s toString method. (polymorphism)• Test your copy constructors in both CruiseShip and CargoShip in shipDemo.java

Interface to your lab 3 (Ship implements Displayable).

public interface Displayable
{
 void display();
}

Resource: 

• UML• Sample Program (OOP_example_2)

Deliverables:

• Displayable.java (10%)• Ship.java (20 %)• CargoShip.java (15%)• CruiseShip.java (15%)• ShipDemo.java (30%)• Screenshot (10%)

Note: Sparingly comment your java source code, save all the files in your_lastname_lab_3 folder, zip it, and upload for grading.

Thank you!