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!