Переменная и метод теневого копирования в Java

В основном, я хотел бы знать, почему статический метод не может быть затенен методом экземпляра (я знаю, почему это приведет к неоднозначности в определенных обстоятельствах), тогда как статическая переменная может быть затенена переменной экземпляра (она применяется только для подклассов ).

Пример:

public class Apartment{

    static int area = 10;

    public static int getArea(){
        return area;
    }
}

class BedroomFlat extends Apartment {

    int area = 10;// no problem at all 

    public int getArea(){ // illegal line it cannot hide the super static method
        return area;
    }
}

Так что, если я попытался объявитьint area (переменная экземпляра) вместе сstatic int area в суперклассе это выдает ошибку, но это не происходит при объявлении в подклассе, даже еслиstatic int area все еще виден из подкласса.

Какая разница в поведении между попыткой дублирования статического метода с помощью метода экземпляра и попыткой дублирования статической переменной с помощью переменной экземпляра.

Заранее спасибо.

Ответы на вопрос(6)

Ваш ответ на вопрос