Preciso de uma ajuda com a palavra reservada Super();

Bom dia galera, eu decidi entra de cabeça em java, o problema é que eu to muito perdido ainda, nunca mexi com programação, e é a primeira vez que eu posto em um fórum tbm, e eu tenho uma dúvida e se alguém puder me ajudar eu agradeço muito.

bom sem mais enrolação vamos direto ao assunto, eu estou tentado chamar um construdo de outra classe, porém não to conseguindo fazê-lo vi muitas coisas sobre a palavra reservada super porém, nada relacionada a minha dúvida, então é o seguinte eu tenho a seginte superclasse:

[code] public class Veiculo {
int nBancos;
String nome;

public Veiculo(Integer nBancos,String sNome){
    this.nome = sNome;
    this.nBancos = nBancos;
}

public int getNBancos()
{
    return nBancos;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

} [/code]

ae eu tenho a sub classe que eu tentei implementar, bom, concerteza tem algumas coisas erradas, mas o que eu gostaria é que se possível fosse, alguém podesse me explicar o que eu esto errando e como deveria proceder, o que eu teria que observar no código acima para que fosse possível eu chamar o método construtor da superclasse,
aqui está a subclasse:

[code] public class Taxi extends Veiculo
{
int nBancos;
String nome;

	public Taxi()
	{
		super.Veiculo();
	}		
}[/code]

Para chamar o construtor da classe pai voce usa só super(parametros);

 public Taxi(Integer nBancos, String sNome)  
     {  
         super(nBancos,sNome);  
     }

Só pra saber… é necessario ter na classe Taxi os mesmos campos que na classe Veiculo?

:lol: :lol: :lol: hahahhah eu não acredito to as uns dois dias batendo a cabeça nisso parecia tão complicado mais valew mesmo Mark_Ameba não sei como te agradecer valew mesmo se naum fosse sua resposta ainda estaria perdido, só mais uma coisa para ver se eu entendi, para chamar o construtor da classe pai tem que definir o construtor da classe filho com os mesmos parâmetros da classe pai, para consegui usar a palavra reservada Super() ? Ex:

 public Taxi(Integer nBancos, String sNome) 

Para você gerar um construtor de uma classe filha você chamaria o construtor da classe pai com

super(PARAMETRO1, PARAMETRO2...);

e também teria que setar os atributos da classe filha, então ficaria assim:

public Classe(PARAMETRO1, PARAMENTRO2, PARAMETRO3){
super(PARAMETRO, PARAMETRO2);
this.atributo = PARAMETRO3
}

Uma coisa que você pode estar fazendo para facilitar sua vida quando já estiver entendo direitinho é usar o atalho do eclipse para gerar contrutores!
Clique com o botão direito na classe >> Vá em SOURCE >> Generete Constructor using Fields.

Ele gera automaticamente o construtor juntamente com o super e tudo mais!

Espero ter ajudado,
Um abraço!
João

Voce nao precisa fazer o construtor igual a da classe pai
vpce pode fazer isso por exemplo

 public class Veiculo {  
    int nBancos;  
    String nome;  
   
    public Veiculo(Integer nBancos,String sNome){  
        this.nome = sNome;  
        this.nBancos = nBancos;  
    }
//Getters e setters  
}      

public class Taxi extends Veiculo{
private String licensa;
public Taxi(String nNome, String licensa){
super(5,nNome);
this.licensa = licensa;
}
//getter e setter para licensa
}

Voce precisa necessariamente chamar o construtor da classe pai caso ele tenha que receber parametros e não tenha um construtor sem argumentos.

Por que se tiver um construtor sem argumentos
(public Veiculo(){}) ele será chamado na classe filha caso nenhum outro super() seja chamado.

Bom é o seguinte, é um pensamento que eu tenho me corrija se eu estiver errado mas exemplo como esses:

public Classe(PARAMETRO1, PARAMENTRO2, PARAMETRO3){ super(PARAMETRO, PARAMETRO2); this.atributo = PARAMETRO3 }

ficam meio difícil para entender para pessoas que estão aprendendo como eu, ou pode ser uma difículdade minha também mais deixa eu explicar o porque, no exemplo que o Mark_Ameba me deu ele mostrou o seguinte

public Taxi(Integer nBancos, String sNome) { super(nBancos,sNome); }

ficaria difícil para intender se ele tivesse colocado como:

public Taxi(PARAMETRO1, PARAMETRO2) { super(PARAMETRO1, PARAMETRO2); }

ficaria confuso porque não saberia se era pra colocar tipo;

public Taxi(Integer nBancos, String sNome) { super(Integer nBancos, String sNome); }

ou

public Taxi(nBancos, sNome) { super(nBancos, sNome); }

bom também posso estar errado, e voce me deixou com uma dúvida, voce colocou um super em uma linha separada

 super(PARAMETRO1, PARAMETRO2...); 

no caso em um código onde eu deveria colocar esse super(PARAMETRO1, PARAMETRO2…);
por exemplo dentro da classe filha fora do método construtor?

e o código abaixo

public Classe(PARAMETRO1, PARAMENTRO2, PARAMETRO3){ super(PARAMETRO, PARAMETRO2); this.atributo = PARAMETRO3 }

porque o PARAMETRO3 ficou fora dos parametros do super, e ficou com this.atributo = PARAMETRO3???

Desulpa pela minha " Ignoracia " mais uma vez eu li um tópico onde um cara disse que devemos pergunta alguma coisa em que temos dúvida, mesmo que seja ela muito simples para que se alguém me perguntar “Porque voce usa isso aki?” e eu não ter que responder “ORAS porque os outros usam…”

mas JoAuM Obrigado mesmo pelas respostas e as dicas do eclipse, é que eu to usando o JCreator que é o programa que os professores usam na faculdade, eu tava sem internet em casa e resolvi trazer o meu pc pra estudar nas horas vagas no meu serviço dae não posso fazer download aki na empresa se naum ja ia dar uma olhda no eclipse.

Valew um abraco!!!

perae deixa eu ver se entedi se o construtor da classe pai não tem argumento ele será chamado automaticamente na classe filho caso nenhum outro tenha sido chamado, ou, mesmo que ele não tenha argumento teria que usar o super() sem parametros para chamá-lo, ah só pra saber se eu não estou falando besteira parametro e argumento são a mesma coisa?

outra coisa, eu não entendi o uso da private String licensa;

Valew brigadão

ah uma observação eu falei que estava fazendo faculdade, o curso Tecnologia em Análise e Desenvolvimento de Sistema, só que é a distância e eu tenho aula uma vez por semana, dae eu axei uns dos melhores jeito de tirar as dúvidas Postar elas Aki, rsrsrsrsrs

[quote=Badeko]perae deixa eu ver se entedi se o construtor da classe pai não tem argumento ele será chamado automaticamente na classe filho caso nenhum outro tenha sido chamado, ou, mesmo que ele não tenha argumento teria que usar o super() sem parametros para chamá-lo, ah só pra saber se eu não estou falando besteira parametro e argumento são a mesma coisa?
[/quote]
Sim parametro e argumento são o mesmo.
Então… caso não tenha argumento voce pode colocar se quiser o super(); mas com ou sem el sera chamado.

É um exemplo de como colocar atributos diferentes para a classe e usar ela com o construtor que esta chamando o super e atribuindo o valor para esse atributo.

Sim aqui é um ótimo lugar para tirar duvidas.^^

Blz eu entendi valew Brigadão mesmo a todos que me ajudaram!!!

Abraços!!! :lol: