Я читал «Руководство программиста по сертификации Java ™ SCJP » Халида Могала .
В главе о наследовании объясняется, что
Наследование членов тесно связано с их заявленной доступностью. Если член суперкласса доступен по своему простому имени в подклассе (без использования какого-либо дополнительного синтаксиса, такого как super), этот член считается унаследованным
Также упоминается, что статические методы не наследуются. Но приведенный ниже код прекрасен:
class A
{
public static void display()
{
System.out.println("Inside static method of superclass");
}
}
class B extends A
{
public void show()
{
// This works - accessing display() by its simple name -
// meaning it is inherited according to the book.
display();
}
}
Как я могу напрямую использовать display()
в классе B
? Более того, B.display()
тоже работает.
Применимо ли объяснение в книге только к методам экземпляра?