Esta bien. Para comprender lo anterior, primero debe comprender la naturaleza de las clases abstractas. Son similares a las interfaces a ese respecto. Esto es lo que Oracle dice sobre esto aquí .
Las clases abstractas son similares a las interfaces. No puede crear instancias de ellos, y pueden contener una combinación de métodos declarados con o sin implementación.
Por lo tanto, debe pensar en lo que sucede cuando una interfaz extiende otra interfaz. Por ejemplo ...
//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 puede ver, esto también se compila perfectamente bien. Simplemente porque, al igual que una clase abstracta, una interfaz NO puede ser instanciada. Por lo tanto, no es necesario mencionar explícitamente los métodos de su "padre". Sin embargo, TODAS las firmas del método padre se convierten implícitamente en parte de la interfaz extendida o la implementación de la clase abstracta. Por lo tanto, una vez que una clase adecuada (una que se puede instanciar) extiende lo anterior, será necesario asegurarse de que se implemente cada método abstracto.
Espero que ayude ... y Allahu 'alam!