Переменная и метод теневого копирования в 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
все еще виден из подкласса.
Какая разница в поведении между попыткой дублирования статического метода с помощью метода экземпляра и попыткой дублирования статической переменной с помощью переменной экземпляра.
Заранее спасибо.