abstract class Vehicle { public abstract void run(); } class Car extends Vehicle { @Override public void run() { System.out.println("Car"); } } class Bike extends Vehicle { @Override public void run() { System.out.println("Bike"); } } class Truck extends Vehicle { @Override public void run() { System.out.println("Truck"); } } public class VehicleTest { public static void main(String[] args) { Vehicle[] vehicles = new Vehicle[3]; vehicles[0] = new Car(); vehicles[1] = new Bike(); vehicles[2] = new Truck(); for (Vehicle v : vehicles) { v.run(); } } }