public class Vehiculo { private int velocidad; private int direccion; protected int velocidadMaxima; protected int velocidadIncremento; protected int direccionIncremento; public Vehiculo() { // Me está diciendo como se comporta mi clase velocidadMaxima=200; velocidadIncremento=10; direccionIncremento=10; } public void acelerar() { velocidad+=velocidadIncremento; if (velocidad>velocidadMaxima) { velocidad=velocidadMaxima; } } public void frenar() { velocidad-=velocidadIncremento; if (velocidad<0) { velocidad=0; } } public void izquierda() { direccion+=direccionIncremento; if (direccion>=360) { direccion-=360; } } public void derecha() { direccion-=direccionIncremento; if (direccion<0) { direccion+=360; } } @Override public String toString() { return "Vehiculo [velocidad=" + velocidad + ", direccion=" + direccion + "]"; } }
public class Coche extends Vehiculo { public Coche() { velocidadMaxima=150; } }
public class Bicicleta extends Vehiculo { public Bicicleta() { velocidadIncremento=3; } }
public class Tanque extends Vehiculo { public Tanque() { direccionIncremento=90; } }
Vehiculo v=new Vehiculo(); v.acelerar(); v.acelerar(); v.derecha(); v.derecha(); System.out.println(v); for(int i=0;i<50;i++) { v.acelerar(); v.derecha(); System.out.println(v); } Coche c= new Coche(); for(int i=0;i<50;i++) { c.acelerar(); System.out.println(c); } Bicicleta b= new Bicicleta(); for(int i=0;i<50;i++) { b.acelerar(); System.out.println(b); } Tanque t=new Tanque(); for(int i=0;i<5;i++) { t.derecha(); System.out.println(t); }