[Resolvido]Heranca em java duvida

Bom dia, estou com uma vida, a classe Liquidificador, que é um extends da Classe Produto, eu queria fazer ela ser extendida pela classe Tampa liquidificador… alguem pode me direcionar?

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package vendaseletrodomesticos;

/**
 *
 * @author rafael
 */
public class Produto  {
    private String marca;
    private double preco;
    private int voltagem;

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }

    public int getVoltagem() {
        return voltagem;
    }

    public void setVoltagem(int voltagem) {
        this.voltagem = voltagem;
    }
    
}
package vendaseletrodomesticos;

/**
 *
 * @author rafael
 */
public class Liquidificador  extends Produto {
    public double desconto(int mes) {
        double valor;
        String corTampa;
        String descricaoTampa;
        double x;
        
        if(mes==5) {
            valor =getPreco();
            x=15*valor/100;
            setPreco(valor-x);
            System.out.println(valor);
        }
        
        return getPreco();
    }
}
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package vendaseletrodomesticos;

public class TampaLiquidificaor extends Liquidificador {
    String corTampa;
    String descricaoTampa;    

    public String getCorTampa() {
        return corTampa;
    }

    public void setCorTampa(String corTampa) {
        this.corTampa = corTampa;
    }

    public String getDescricaoTampa() {
        return descricaoTampa;
    }

    public void setDescricaoTampa(String descricaoTampa) {
        this.descricaoTampa = descricaoTampa;
    }
}

Bom dia amigo,

Você quer extender as duas classes?(Produto e Tampa)

Se for isso, é considerado Herança Múltipla, o que no Java não é possível.

Você pode usar extends e implements junto, utilizando interfaces. Ou criar dois níveis de hierarquia.

Ex:
Extender a classe A e a classe B em C? Então faça a B extender a A e depois dê um “extends” em C com B.

1 curtida

Um liquidificador não é uma tampa, então não faz sentido a classe Liquidificador estender a classe Tampa.
A classe Liquidificador pode ter um atributo do tipo Tampa.

2 curtidas

Olá!
Como @staroski disse, não há motivo para o objeto Liquidificador estender da classe Tampa. Usamos herança quando um objeto é um tipo de outro objeto. No caso, um Liquidificador não é uma Tampa, mas, Liquidificador tem uma Tampa, então o correto seria criar um objeto Tampa dentro de Liquidificador:

public class Liquidificador {

    //outros atributos e variáveis...
    Tampa tampa;
    //métodos e construtores...

}

Espero ter ajudado! :wink:

2 curtidas

a professora pediu assim… a classe liquidificador vai ter “um atributo tampa” (estava em negrito) e o atributo tampa vai possuir nome e descrição, eu nao posso ter um atributo multi valorado em java

eu devo esta usando o conceito errado pq oq eu quero é o contrario, que liquidificador use os atributos de tampa olha oq o exercicio pede
1 ‐ Crie um sistema que controle a venda direto da fábrica ou da loja de Eletrodoméstico que
pode vender: Liquidificador, Batedeira ou Ferro de passar. Todos vão ter: marca, preço e
voltagem. Será obrigado para cadastrar um novo eletrodoméstico já possuir um preço, voltagem
e marca ou apenas marca e voltagem (para a fábrica utilizar). A classe Liquidificador terá
também um atributo tampa, que por sua vez possuirá: Cor e Descrição. Já a batedeira terá
uma quantidade de hélices. E todos terão um cálculo de desconto. Porém o desconto será feito
de acordo com o mês. Se estiver no mês de maio (mães) o ferro fica em promoção de 15%. Se
tiver no mês de Agosto (pais) é dado um desconto de 10% no liquidificador e no mês de
dezembro é o mês de dar 20% de desconto na batedeira. Além disso, a atribuição da voltagem
do eletrodoméstico se dará através da validação se é 110 ou 220, mas se ele for um ferro, a
verificação será também válida se for 5 volts, pois existe um modelo carregado por USB.
O liquidificador e a batedeira terão quantidade média de litros que podem ser batidos por
segundo. Será calculado pela formula: quantidade(L)/Capacidade(L/S). Caso se tenha mais de
uma hélice na batedeira a será multiplicado a quantidade de hélices pela capacidade.

olha oq a atividade pede 1 ‐ Crie um sistema que controle a venda direto da fábrica ou da loja de Eletrodoméstico que
pode vender: Liquidificador, Batedeira ou Ferro de passar. Todos vão ter: marca, preço e
voltagem. Será obrigado para cadastrar um novo eletrodoméstico já possuir um preço, voltagem
e marca ou apenas marca e voltagem (para a fábrica utilizar). A classe Liquidificador terá
também um atributo tampa, que por sua vez possuirá: Cor e Descrição. Já a batedeira terá
uma quantidade de hélices. E todos terão um cálculo de desconto. Porém o desconto será feito
de acordo com o mês. Se estiver no mês de maio (mães) o ferro fica em promoção de 15%. Se
tiver no mês de Agosto (pais) é dado um desconto de 10% no liquidificador e no mês de
dezembro é o mês de dar 20% de desconto na batedeira. Além disso, a atribuição da voltagem
do eletrodoméstico se dará através da validação se é 110 ou 220, mas se ele for um ferro, a
verificação será também válida se for 5 volts, pois existe um modelo carregado por USB.
O liquidificador e a batedeira terão quantidade média de litros que podem ser batidos por
segundo. Será calculado pela formula: quantidade(L)/Capacidade(L/S). Caso se tenha mais de
uma hélice na batedeira a será multiplicado a quantidade de hélices pela capacidade.

Não deve ser o que você quer, mas sim o que é correto.

Em respostas anteriores foi argumentado que uma tampa não é um liquidificador, por isto não faz SENTIDO tampa extender de liquidificador.
Mas o liquidificador tem uma tampa, por isto faz sentido, o liquidificador possuir um atributo do tipo tampa.

“Escute”, os objetos que você cria devem possuir SENTIDO.

Veja:


Não trate os objetos como meras estruturas de dado, mas sim como estruturas de dados com sentido do ponto de vista de objetos.
Tome como base os objetos do mundo real.

Obs.: evite duplicar comentários, pois todos os participantes são notificados quando há algo novo, a não ser que ele omita a publicação.

1 curtida

Viu? Exatamente como eu e o colega @UmaPessoa falamos.

Agora com seu enunciado detalhado, consigo visualizar pelo menos as seguintes classes:

  • Eletrodomestico (classe base para Liquidificador, Batedeira e FerroDePassar)

  • Liquidificador

  • Tampa (utilizada pelo liquidificador)

  • Batedeira

  • FerroDePassar

2 curtidas

Glr obrigado, conseguui pontuar no PBL e sanar minhas duvidas