dÚvidas sobre classe abstrata

3 respostas
F

E aí pessoal, tudo bem?

Gostaria de uma ajuda para resolver um exercicio.

Criei uma classe abstrata chamada CLIENTE, onde tenho 3 métodos abstratos.

Preciso fazer a especialização em duas classes chamada VIP e NORMAL

Quando eu crio a classe VIP está dando erro.

EX: public class Vip extends Cliente

Diz que eu preciso definir um construtor explícito para essa classe.

Como se faz isso?

Todos os 3 métodos criados na classe Cliente, eu tenho que implementar eles aqui??

Como eu faço para testar a execução destes métodos, direto do método main?

Obrigado.

3 Respostas

M

a primeira classe concreta deve implementar todos os métodos, quer dizer que você terá que implementar todos os métodos da classe cliente.

para implementar um construtor explícito é só declarar um construtor na sua classe.

ex:

public class MinhaClasse {
   //construtor
   public MinhaClasse() {
     //TODO
   }
}
renanedpedroso

Exemplo:

Classe abstrata:

public abstract class Cliente {

    private String nome = "";

    public Cliente(String nome) {
        this.nome = nome;
    }

    public String getNome() {
        return nome;
    }

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

    public abstract void comprar();
    public abstract void devolver();
    public abstract void pagar();

}

Herdando…

public class Vip extends Cliente {

    //construtor explícito
    public Vip(String nome) {
        super(nome);
    }
    
    @Override
    public void comprar() {
        //comprar
    }

    @Override
    public void devolver() {
        //devolver
    }

    @Override
    public void pagar() {
        //pagar
    }

}

Para chamar o método, você pode utilizar assim:

public static void main (String args[]){
    Cliente cliente = new Vip("José");
    cliente.comprar();
}

ou assim:

public static void main (String args[]){
    Vip clienteVip = new Vip("João");
    clienteVip.comprar();
}

Espero ter ajudado, abraço!

H

Sim, vc deve criar um constructor para sua classe concreta.
Você tem que implementar todos os métodos abstratos na primeira classe concreta
que extender a classe abastrata.
Para executar os métodos direto no método main da sua classe concreta, vc
precisa de uma referência a uma instância da sua classe.

Criado 18 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 3
Participantes 4