Duvida list em classe abstrata

3 respostas
R
ola estou precisando de ajuda com o seguinte codigo:
package br.edu.assesc.trabalho04.ricardo.questao01;

import java.util.Iterator;
import java.util.List;

public abstract class Pizzaria {
	private List<Pizza> pizzas;

	/**
	 * Este metodo devera receber uma nova pizza e inserir na lista de pizzas
	 */
	public abstract void recebeNovoPedido(Pizza p);

	/**
	 * Este metodo devera preparar todas as pizzas que tem pedido efetuado
	 */
	public final void prepararAsPizzas() {
		for (Pizza p : pizzas) {
			prepararMolho(p);
			prepararRecheio(p);
		}
	}

	/**
	 * Este metodo devera preparar o molho de acordo com a pizza
	 */
	public abstract void prepararMolho(Pizza p);

	/**
	 * Este metodo devera preparar o recheio de acordo com os itens de recheio
	 * da pizza
	 */
	public abstract void prepararRecheio(Pizza p);

	/**
	 * Este metodo devera entregar todas as pizzas para os clientes
	 */
	public void entregarParaCliente() {
		Iterator<Pizza> lista = pizzas.iterator();
		while (lista.hasNext()) {
			Pizza p = lista.next();
			System.out.println("Pizza " + p.getNome() + " entregue!");
			lista.remove();
		}
	}

	public List<Pizza> getPizzas() {
		return pizzas;
	}

	public void setPizzas(List<Pizza> pizzas) {
		this.pizzas = pizzas;
	}
}
package br.edu.assesc.trabalho04.ricardo.questao01;

public class MinhaPizzaria extends Pizzaria {

	public void recebeNovoPedido(Pizza p) {

	}

	@Override
	public void prepararMolho(Pizza p) {
		System.out.println("molho preparado");

	}

	@Override
	public void prepararRecheio(Pizza p) {
		System.out.println("recheio preparado");

	}

}
package br.edu.assesc.trabalho04.ricardo.questao01;

import java.util.ArrayList;

public class TestarPizzaria {

	public static void main(String[] args) {

		// As variaveis criadas devem ser sempre do tipo
		// da classe abstrata

		// 1)Criar instancia de pizzaria

		ArrayList<Pizza> nova = new ArrayList<Pizza>();

		MinhaPizzaria rkd0 = new MinhaPizzaria();

		// 2)Fazer pelo menos 2 pedidos

		PizzaPresunto p1 = new PizzaPresunto();
		PizzaQueijo p2 = new PizzaQueijo();
		nova.add(p1);
		nova.add(p2);

		rkd0.setPizzas(nova);

		rkd0.recebeNovoPedido(p1);

		// 3)mandar preparar pedidos

		rkd0.prepararAsPizzas();

		// 4)mandar entregar os pedidos

		rkd0.entregarParaCliente();

	}

}

na classe TestarPizzaria quando chamo o metodo receberNovoPedido e coloco como parametro a p1 ou p2 da erro.
se alguém puder ajudar agradeço.

public abstract class Pizza {
	private String nome;
	private String molho;
	private List<String> itensRecheio;

	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getMolho() {
		return molho;
	}
	
	public void setMolho(String molho) {
		this.molho = molho;
	}
	
	public List<String> getItensRecheio() {
		return itensRecheio;
	}

	public void setItensRecheio(List<String> itensRecheio) {
		this.itensRecheio = itensRecheio;
	}
}
package br.edu.assesc.trabalho04.rafael.questao01;
import java.util.ArrayList;
import java.util.List;


public class PizzaPresunto extends Pizza {

	public PizzaPresunto(){
		this.setNome("Presunto");
		this.setMolho("tomate");
		List<String> itens = new ArrayList<String>();
		itens.add("queijo");
		itens.add("presunto");
		this.setItensRecheio(itens);
	}
}

3 Respostas

Leandro_M

Qual erro ocorre?

Você tem um método recebeNovoPedido(Pizza p) e está chamando ele na classe TestarPizzaria passando PizzaPresunto como parâmetro.

Posta suas classes de entidade para darmos uma olhada.

Abs

douglaskd

sua classe PizzaPresunto e qualquer pizzaXxxxx deve extender Pizza

ou implementar Pizza. (case seja interface)

la na declaração da classe…:

public class PizzaPresunto extends Pizza
drsmachado

Sim, eu duvido.
Seu título não é nem um pouco descritivo, deixa a entender que você nem sabe o que quer fazer.
Por que não coloca um título mais claro e mais objetivo?Aproveite, na minha assinatura tem um link para o how to do guj, leia-o e aproveite o que ele informa.

Criado 15 de maio de 2013
Ultima resposta 15 de mai. de 2013
Respostas 3
Participantes 4