Isso é bom. Para entender o que foi dito acima, primeiro é necessário entender a natureza das classes abstratas. Eles são semelhantes às interfaces a esse respeito. É o que a Oracle diz sobre isso aqui .
Classes abstratas são semelhantes às interfaces. Você não pode instancia-los e eles podem conter uma mistura de métodos declarados com ou sem uma implementação.
Então você tem que pensar no que acontece quando uma interface estende outra interface. Por exemplo ...
//Filename: Sports.java
public interface Sports
{
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
//Filename: Football.java
public interface Football extends Sports
{
public void homeTeamScored(int points);
public void visitingTeamScored(int points);
public void endOfQuarter(int quarter);
}
... como você pode ver, isso também compila perfeitamente. Simplesmente porque, assim como uma classe abstrata, uma interface NÃO pode ser instanciada. Portanto, não é necessário mencionar explicitamente os métodos do seu "pai". No entanto, TODAS as assinaturas do método pai tornam-se implicitamente parte da interface de extensão ou implementação da classe abstrata. Portanto, uma vez que uma classe apropriada (uma que possa ser instanciada) estenda o descrito acima, será necessário garantir que todos os métodos abstratos sejam implementados.
Espero que ajude ... e Allahu 'alam!