Imprimir valores de outra classe em um ArrayList

Boa noite, galera.

Estou fazendo um trabalho de faculdade e tenho uma classe Carro e Moto que herdam os atributos (nome, valor e hora) de Veículo e tenho uma classe Estacionamento com um ArrayList. Preciso adicionar veículos no ArrayList e depois imprimir os valores que estão nos atributos de cada veículo.

Ex: Veiculo 1: Nome Carro, Valor 50, Hora 3
Veiculo 2: Nome Moto, Valor 15, Hora 4

No meu código quando vou imprimir aparece alguns caracteres estranhos, se alguém pudesse me ajudar. Já procurei várias coisas na internet, mas nenhum delas deu certo.

Desde já agradeço. =)

Código
Estacionamento.java

 package negocio;

    import java.util.ArrayList;

    public class Estacionamento {
    	
    	public static int i;

    	public static void main(String[] args) {
    		
    		
    		ArrayList<Veiculo> listaVeiculo = new ArrayList<Veiculo>();
    		Veiculo veiculo = new Veiculo();
    		
    		listaVeiculo.add(new Carro());
    		listaVeiculo.add(new Moto());
    		
    		
    		for(i = 0; i < listaVeiculo.size(); i++){
    			System.out.println("Veiculo "+ i+1);
    			System.out.println("Hora: " + listaVeiculo.get((int) veiculo.getHora()));
    		}
    		
    		
    	}
    }

Veiculo.java

package negocio;

public class Veiculo {
	
	private float valor;
	private int hora;
	private String nome;
	
	
	
	public float getHora() {
		return hora;
	}
	public void setHora(int hora) {
		this.hora = hora;
	}
	public float getValor() {
		return valor;
	}
	public void setValor(int valor) {
		this.valor = valor;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}

}

Carro.java

package negocio;

public class Carro extends Veiculo {
	
	float valor = 50;
	int hora = 3;
	String nome = "Carro";

}

Moto.java

package negocio;

public class Moto extends Veiculo{
	
	float valor = 15;
	int hora = 1;
	String nome = "Moto";
	

}

Bom dia
Tente usar o for assim:

for(Veiculo v : listaVeiculo){
      System.out.println("Veiculo "+v.getNome());
      System.out.println("Hora: " + v.getHora());
}

Espero ter ajudado

1 curtida

Obrigada, resolveu o meu problema.