Nao imprime no vetor

3 respostas
M
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;
    }
 
}
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;
    }
}
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;
    }
}

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?

3 Respostas

WendersonLP

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.

M

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

WendersonLP

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.

Criado 29 de novembro de 2009
Ultima resposta 30 de nov. de 2009
Respostas 3
Participantes 2