interface Riggable { void rig(); void unrig(); boolean isRigged(); } abstract class Vessel { double length; String meansOfPower; abstract void setMeansOfPower(String m); } class Boat extends Vessel { String name; void setMeansOfPower(String m) {meansOfPower = m;} void setLength(double len) {length = len;} public String toString() {return "the Vessel " + name; } } class Sailboat extends Boat implements Riggable { private int numberOfMasts; boolean rigged; void setMeansOfPower(String m) { super.setMeansOfPower("wind"); } void setName(String n) {name = n; } Sailboat() { setMeansOfPower(""); } Sailboat(String n) { setMeansOfPower(""); setName(n); } public void rig() { rigged = true; } public void unrig() { rigged = false; } public boolean isRigged() {return rigged;} } public class SailAway { public static void main(String []argv) { Vessel v = new Sailboat("HMS 341"); ((Sailboat)v).rig(); System.out.println(v.toString() + " is ready to cruise!"); } }