Ajuda com Herança

14 respostas
Y

Alguem me ajuda porfavor ;x

esta dando erro na Classe AVIAO mas nao sei pq ;(

se alguem souber me diga plz ;D

Aguardo respostas…

Segue o Codigo

/**
*

  • @author YouR-PdR

*/

public abstract class Transportes {

private String nome;

private int numeroPassageiros;

private int velocidadeAtual;
public boolean estaParado(){
		return false;
		
	}

public abstract class TransporteAereo extends Transportes{
private int altitudeAtual;

public void subir(int metros){
		
	}
	public void desce(int metros){
		
	}

public abstract class TransporteTerrestre extends Transportes{
private String tipo;

public void estacionar(){
		
	}

public class Aviao extends TransporteAereo{
private int numeroMotores;

public void curvar (float angulo){
		
	}
	public void abastecer (int numLitros){
		
	}
	public void ligarMotor (){
		
	}

}

}
}

public static void main(String[] args) {
	// TODO Auto-generated method stub

}

}

14 Respostas

nel

Olá.

Primeira, leia este post: http://www.guj.com.br/posts/list/50115.java

Não esqueça de utilizar as tags para uma melhor identificação do seu código. Ficou bem confuso de compreender, faça um próximo post e nos mostre qual erro (Exception) ocorre, ok?

Só um detalhe, você está usando public abstract class…
veja se é isso que quer utilizar.

Abraços!

Y

é isso mesmo, tenho que usar os abstracts…
recebi um UML do professor e tenho que fazer o codigo…
mas fica dando erro nas classes AVIAO e BALAO

eu sei que tenho que ler tudo aquilo mas tow sem tempo agora "/

quem poder me ajudar Agradeço…

nel

Apenas utilize a tag Code, que fica acima do campo que digitamos o nosso texto. Basta selecionar toda a parte que você diz ser seu código e depois clicar no botão Code.

Sobre seu código, como eu disse, poste o erro (Exception) que está ocorrendo. Abraços!

xdraculax

Complicado ein?

Como você quer ajuda se você nem ajuda a gente a pelo menos entender o seu código?
Não dá pra saber onde a classe Transportes termina; isso está tudo em um único arquivo?

:?: :?: :?:

Y
/**
 *  
 * @author YouR-PdR
 *
 */

public abstract class Transportes {
	private String nome;
	private int numeroPassageiros;
	private int velocidadeAtual;
	
		public boolean estaParado(){
			return false;
			
		}
public abstract class TransporteAereo extends Transportes{
	private int altitudeAtual;
	
		public void subir(int metros){
			
		}
		public void desce(int metros){
			
		}
public abstract class TransporteTerrestre extends Transportes{
	private String tipo;
	
		public void estacionar(){
			
		}
public class Aviao extends TransporteAereo{
	private int numeroMotores;
	
		public void curvar (float angulo){
			
		}
		public void abastecer (int numLitros){
			
		}
		public void ligarMotor (){
			
		}
		
public class Balao extends TransporteAereo{
	private int pesoLargada;
	
		public void largadaPeso(float peso){
			
		}
		
		public void aquecerAr(float tempo){
			
		}
}
public class Carro extends TransporteTerrestre{
	private int numCilindradas;
	
		public void curvar(float angulo){
			
		}
		
		public void abastecer (int numlitro){
			
		}
}
}
	
}
}

	
	
	
	
	
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

e o erro que ta dando é

" No enclosing instance of type Transportes is available due to some intermediate constructor
invocation "

A

Pelo o que eu entendi do seu código você está fazendo todas as classes dentro de um único arquivo. Se você separar e colocar cada classe dentro de um único arquivo não vai ter esse problema.

Quando você usa várias classes dentro de um único arquivo somente uma classe pode ser “public” e é a que tem o mesmo nome do arquivo “.java”.

Da uma olhada nos “abstract” que você está usando sem necessidade.

[]'s

nel

Exatamente o que o Alex disse, e volto a repetir, sem demonstrar o erro que ocorre fica complicado!

Abraço! :smiley:

Y

Humm…
entao eu crio varios arquivos, um para cada classe?

Pelo que eu intendi do professor é necessario os ‘Abstracts’

mas vlw
vou tentar ajeitar

xdraculax

Coloca cada classe dessa em um arquivo diferente, com o mesmo nome da classe.

Como o colega disse, tem que ter o mesmo nome (quando é public).
Isso de colocar várias classes no mesmo arquivo não é muito praticado.

Deixa os abstracts. Você entendeu o que é um abstract?

daniellfeijo
public class Aviao extends TransporteAereo{ 
private int numeroMotores; 

public void curvar (float angulo){ 

} 
public void abastecer (int numLitros){ 

} 
public void ligarMotor (){ 

} 

public class Balao extends TransporteAereo{ 
private int pesoLargada; 
....

Não está faltando a chave para fechar a classe Avião não?

Abraço…

Y

Vlw vlw :smiley:

Resolvido…
Botei cada classe em um arquivo, nem tinha pensado nisso :shock:

cada classe em um arquivo me ajuda na organização tbm C_C

vlw galera =**

daniellfeijo

Cara,

Uma classe abstrata é uma classe que não pode ser instanciada. Pelo que entendi, é o caso de algumas de suas classes, onde estas  servem para "dar" de herança seus atributos e metodos para suas subclasses. Como por exemplo a Classe TransporteAreo que não vai poder ser instanciada mais vai servir para "dar" seus atributos e metodos de herança para classe Aviao, esta sim pode ser instanciada e gerar um objeto. O problema desse seu programa como  foi dito a cima pelos nossos colegas é a organização das classes que está muito confusa. Pelo que entendi você não fechou nenhuma classe com chaves....  confuso mesmo..

Beleza… separando cada classe por arquivo realmente fica mais organizado!
Abraço…

daniellfeijo

reforçando…

Abraço a todos…

Y

Vlw… Vlw mesmo a todos…
a questão de uma classe ser abstrata no meu codigo a funcionalidade dela mesmo é ‘DAR’ o que os herdeiros dela precisa… só isso.
Elas futuramente não seram estanciadas…

Vlw mais uma vez pelas ajudas… Voces ainda vao me ver muito poraqui ;D

espero que ajudando tbm…
Conhecimento é melhor quando se é bem passado…

Criado 16 de outubro de 2009
Ultima resposta 16 de out. de 2009
Respostas 14
Participantes 5