Olá, Lucas! Parece que você já está se familiarizando com a ideia de sobrescrever métodos em Java, o que é ótimo!
Pelo que entendi, você testou a sobrescrita do método toString()
na classe Titulo
e percebeu que funcionou tanto para a classe Filme
quanto para uma lista de séries que você criou. Isso é exatamente o que esperaríamos, já que a classe Filme
é uma subclasse de Titulo
. Quando você sobrescreve um método na classe pai (Titulo
, neste caso), todas as subclasses (Filme
, Serie
, etc.) herdarão essa nova implementação do método, a menos que elas sobrescrevam o método novamente.
Vamos tomar como exemplo a seguinte hierarquia de classes:
class Titulo {
// Outros métodos...
@Override
public String toString() {
return "Titulo: " + this.getNome();
}
}
class Filme extends Titulo {
// Outros métodos...
}
class Serie extends Titulo {
// Outros métodos...
}
Neste caso, tanto a classe Filme
quanto a classe Serie
herdarão a implementação do método toString()
da classe Titulo
, a menos que elas sobrescrevam o método novamente. Isso significa que, se você criar uma instância de Filme
ou Serie
e chamar o método toString()
, o resultado será "Titulo: " seguido do nome do filme ou da série.
Espero que isso esclareça sua dúvida! Lembre-se de que a sobrescrita de métodos é um conceito fundamental na programação orientada a objetos e é muito útil para alterar o comportamento de subclasses de maneira controlada. Espero ter ajudado e bons estudos!