Pizzaria - requisitos
HERANÇA
Disciplina: PC-II Exercício 1: O diagrama da Figura 1.1 fornece um indicativo da evolução das estrelas (extraído de http://astro.if.ufrgs.br/estrelas/escola.htm):
Item (A): O método mostrarTipo() deverá mostrar o nome da classe, o método mostrarDados() deverá retornar o conteúdo de cada um dos campos (devidamente inicializados por construtores apropriados) e o campo nome deverá conter o nome do objeto (por exemplo, o nome da estrela do nosso Sistema Solar é “Sol”). Resolução: public class ProtoEstrela { protected double temperatura; protected double magnitude; protected double luminosidade; public ProtoEstrela() // Construtor sem parâmetros. { temperatura = 0.0; magnitude = 0.0; luminosidade = 0.0; } public ProtoEstrela(double a, double b, double c) // Sobrecarga. { temperatura = a; magnitude = b; luminosidade = c; } public String mostrarTipo() // Retorna a string com o nome da classe. { return "Sou uma Proto-Estrela"; } public String mostrarDados() // Retorna string com valores nos campos. { return "Temperatura: " + temperatura + "Magnitude: " + magnitude + "Luminosidade: " + luminosidade; } public String toString() // Retorna string quando usar println. { return mostrarTipo() + mostrarDados(); }
Figura 1.1: Evolução estelar para diferentes massas. Tendo em vista a Figura 1.1, criar a hierarquia de classes dada na Figura 1.2:
Figura 1.2: Hierarquia de classes.
} // Fim Classe ProtoEstrela. 1 2
public class EstrelaAmarela extends ProtoEstrela // extends = herda de { protected String nome; public EstrelaAmarela() // Construtor sem parâmetros. { temperatura = 0.0; magnitude = 0.0; luminosidade = 0.0; nome = "Desconhecida"; } public EstrelaAmarela(double a, double b, double c, String s) { temperatura = a; magnitude = b; luminosidade = c; nome = s; } public String mostrarTipo() // Sobreposição: redefinindo o método dado { // na classe ProtoEstrela e que foi herdado. return "Nome: " + nome + "Sou uma EstrelaAmarela:"; }