Sobre o uso de polimorfismo, considere o trecho de código Java, que contém uma lacuna identificada por “<?>”:
abstract class Pessoa {
private String nome;
public Pessoa(String nome) { this.nome = nome; }
public String getNome() { return nome; }
public abstract String papel();
}
class Aluno extends Pessoa {
public Aluno(String nome) { super(nome); }
@Override
public String papel() { return "Aluno"; }
}
class Professor extends Pessoa {
public Professor(String nome) { super(nome); }
@Override
public String papel() { return "Professor"; }
}
public class Teste {
public static void main(String[] args) {
Pessoa p1 = new Aluno("Ana");
Pessoa p2 = new Professor("Bruno");
System.out.println( <?> );
}
}
Para que o programa imprima exatamente “Ana:Aluno | Bruno:Professor”, qual das alternativas apresenta a melhor expressão para substituir a lacuna <?> ?