Nao imprime no vetor

[code]public class Veiculo{
private String cor;
private String codVeiculo;

public Veiculo(String cor, String codVeiculo){
	this.cor=cor;
	this.codVeiculo=codVeiculo;
}
public String getCor(){
	return cor;
}
public void setCor(String cor){
	this.cor=cor;
}
public String getCodVeiculo(){
	return codVeiculo;
}
public void setCodVeiculo(String codVeiculo){
    this.codVeiculo=codVeiculo;
}

public String toString(){
	String frase = "Cor: "+getCor()+"\nCódigo do Veículo: "+getCodVeiculo();
    return frase;
}

}[/code]

[code]public class Moto extends Veiculo{
private int nRodas;

public Moto(String cor, String codVeiculo){
	super(cor,codVeiculo);
	this.nRodas=nRodas;
}
public int getNrodas(){
	return nRodas;
}
public void setNrodas(int nRodas){
	this.nRodas=nRodas;
}
public String toString(){
	String frase = "Cor: "+getCor()+"\nCódigo do Veículo: "+getCodVeiculo()+"Numero de Rodas"+getNrodas();
    return frase;
}

}[/code]

[code]
public class Carro extends Veiculo{
private int qtdPortas;

public Carro(String cor, String codVeiculo,int qtdPortas){
	super(cor,codVeiculo);
	this.qtdPortas=qtdPortas;	
}
public int getQtdPortas(){
	return qtdPortas;
}
public void setQtdPortas(int qtdPortas){
	this.qtdPortas=qtdPortas;
}
public String toString(){
	String frase = "Cor: "+getCor()+"\nCódigo do Veículo: "+getCodVeiculo()+"Numero de Portas"+getQtdPortas();
    return frase;
}

}[/code]

eh o seguinte:

  • Eu quero criar uma classe main que armazena dodos de todos os veiculos em um vetor…

  • mas o problema eh o seguinte, eu nao possui instanciar lah em cima as classes Carro e Moto, somente posso usar variaveis locais,como seria isso, tipo, como imprimiria uem um vetor os dados de moto e carro, embaralhados mesmo

  • outrra coisa, tem como eu criar um metodo imprimir somente na classa veiculo? e usar p imprimir informações dos dois tipos de veiculo, como carro e moto?

Bem como as classes Moto e Carro estão extendendo a classe Veículo, você pode criar um vetor do tipo Veículo e armazenar objetos das classe Moto e Carro já que esses dois extendem a classe Veículo. Já na exibição dos dados de qualquer que seja a classe, ou seja as classes que extendem Veículo, você pode colocar um objeto com o tipo de parâmetro Veículo, e como em cada classe que à extende tem um método toString, é só chamar esse método com o objeto do parâmetro, aí indenpendente do tipo de classe que seja, o seu conteúdo será exibido normalmente.

Caro amigo, nao entnedi, voce pode dar um exemplo?

Classe Pai:

public class Inheritance {
	
	private String father;
	
	public Inheritance(String father) {
		this.father = father;
	}
	
	public String toString() {
		return this.father;
	}
	
	public void readInheritance(Inheritance multiple) {
		System.out.println(multiple);
	}
}

Primeira classe que à extende:

public class Inheritance1 extends Inheritance {
		
	private String son;
		
	public Inheritance1(String father, String son) {
		super(father);
		this.son = son;
	}
		
	public String toString() {
		return String.format("Father: %s  Son1: %s\n", super.toString(), this.son);
	}
}

Segunda classe que à extende:

public class Inheritance2 extends Inheritance {
		
	private String son;
		
	public Inheritance2(String father, String son) {
		super(father);
		this.son = son;
	}
		
	public String toString() {
		return String.format("Father: %s  Son2: %s\n", super.toString(), this.son);
	}
}

Bem agora se você presta atenção na classe pai eu criei um método que recebe como parâmetro um objeto da classe Inheritance, mas como as classes Inheritance1 e Inheritance2 extenderam a classe Inheritance você pode passar como parâmetro um objeto dessas classes, já que elas extendem a classe Pai.