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);
}