Я проходил тестовые вопросы по экзамену Java 8 Programmer I на веб-сайте Oracle и наткнулся на следующий вопрос:
abstract class Writer {
public static void write() {
System.out.println("Writing...");
}
}
class Author extends Writer {
public static void write() {
System.out.println("Writing book");
}
}
class Programmer extends Writer {
public static void write() {
System.out.println("Writing code");
}
public static void main(String[] args) {
Writer w = new Author();
w.write();//What would be the ouput here?
}
}
Правильный ответ: метод абстрактного класса вызывается.
Теперь я понял, что в полиморфизме, если переменная родительского класса типа содержит ссылку на объект подкласса, будет вызван метод подкласса.
Следовательно, правильно ли я понимаю, что в случае статической функции будет вызван метод класса, переменная которого содержит ссылку?