Boa noite a todos. Estou estudando herança e estou tentando imprimir os textos através de sobrescrição - consegui fazer através da composição - do toString() e herança, separada em três classes (excetuando a classe que contém main). Contudo, me parece que as chamadas a super.toString() não estão funcionando pois quando executo o código nada é impresso. Vocês poderiam me dizer qual é o erro? Obrigado pela ajuda. Colocarei duas das classes porque a terceira é semelhante à primeira subclasse:
package aluno1;
/**
*
* @author Eduardo Felipe
*/
public class Aluno {
private String nome, matricula, sexo;
private int idade;
public Aluno(String n, String mat, String s, int id)
{
setNome(n);
setMatricula(mat);
setSexo(s);
setIdade(id);
}
private void setNome(String n)
{
if(n == null || n.equals("")){
System.out.println("Não há especificação de nome");
System.exit(0);
}
else
nome = n;
}
private void setMatricula(String mat)
{
if(mat == null || mat.equals("")){
System.out.println("Não há especificação de matrícula");
System.exit(0);
}
else
matricula = mat;
}
private void setSexo(String s)
{
String s1;
s1 = s.toUpperCase();
if(s == null || s.equals("")){
System.out.println("Não há especificação de sexo");
System.exit(0);
}
else if(s1.equals("F") || s1.equals("M"))
sexo = s;
else
System.out.println("Caractere incorreto");
System.exit(0);
}
private void setIdade(int id)
{
idade = (id > 15)? id : 0;
if(idade == 0){
System.out.println("A idade do aluno está configurada como 0.");
System.exit(0);
}
}
public int getIdade() {
return idade;
}
public String getMatricula() {
return matricula;
}
public String getNome() {
return nome;
}
public String getSexo() {
return sexo;
}
public String toString()
{
return String.format("%s\n\n%s: %s\n%s: %s\n%s: %s\n%s: %d\n\n",
"Dados do aluno", "Nome", getNome(), "Matrícula", getMatricula(),
"Sexo", getSexo(), "Idade", getIdade());
}
}
package aluno1;
/**
*
* @author Eduardo Felipe
*/
public class AlunoDeGraduacao extends Aluno {
public AlunoDeGraduacao(String n, String mat, String s, int id)
{
super(n, mat, s, id);
}
public String graduacao()
{
return "Aluno de graduação de Ciência da Computação";
}
public String toString()
{
return String.format("%s%s", super.toString(), graduacao());
}
}
package aluno1;
/**
*
* @author Eduardo Felipe
*/
public class AlunoTest {
public static void main(String[] args) {
// public Secundarista(String n, String mat, String s, int id)
AlunoDeGraduacao alun1 = new AlunoDeGraduacao("Fulano", "999999999", "M", 15);
System.out.printf("%s\n", alun1);
}
}