Winter 2026 Midterm Practice Questions
1. UML Class Diagram
Write a full java program based on the following UML class diagram. Any details not shown in
the diagram can be omitted in your answer.
public abstract class Vehicle {
public abstract void move(double d);
public abstract void stop();
public abstract void turn(double d);
}
public class Car extends Vehicle {
private double mMileage;
private double mSpeed;
private Axle[] axle;
@Override
public void move(double d) { ... }
@Override
public void stop() { ... }
@Override
, public void turn(double d) { ... }
public void setSpeedMPH(double d) { ... }
public double getSpeedMPH() { ... }
public double getSpeedKPH() { ... }
private void setMileage(double d) { ... }
}
public class Bicycle extends Vehicle {
@Override
public void move(double d) { ... }
@Override
public void stop() { ... }
@Override
public void turn(double d) { ... }
}
public class RollerSkates extends Vehicle {
@Override
public void move(double d) { ... }
@Override
public void stop() { ... }
@Override
public void turn(double d) { ... }
}
public class Axle {
private Wheel[] wheel;
public void addWheel() { ... }
public void spin() { ... }
}
public interface Wheel {
void roll();
}
The axle and wheel fields do not need to be private.
But m_Mileage and m_Speed have to be private as indicated by the UML diagram.
1. UML Class Diagram
Write a full java program based on the following UML class diagram. Any details not shown in
the diagram can be omitted in your answer.
public abstract class Vehicle {
public abstract void move(double d);
public abstract void stop();
public abstract void turn(double d);
}
public class Car extends Vehicle {
private double mMileage;
private double mSpeed;
private Axle[] axle;
@Override
public void move(double d) { ... }
@Override
public void stop() { ... }
@Override
, public void turn(double d) { ... }
public void setSpeedMPH(double d) { ... }
public double getSpeedMPH() { ... }
public double getSpeedKPH() { ... }
private void setMileage(double d) { ... }
}
public class Bicycle extends Vehicle {
@Override
public void move(double d) { ... }
@Override
public void stop() { ... }
@Override
public void turn(double d) { ... }
}
public class RollerSkates extends Vehicle {
@Override
public void move(double d) { ... }
@Override
public void stop() { ... }
@Override
public void turn(double d) { ... }
}
public class Axle {
private Wheel[] wheel;
public void addWheel() { ... }
public void spin() { ... }
}
public interface Wheel {
void roll();
}
The axle and wheel fields do not need to be private.
But m_Mileage and m_Speed have to be private as indicated by the UML diagram.