-1
Я устал, чтобы узнать порядок приоритета, написал следующий код, который ведет себя странно. Я ожидал ответа черным, но он белым.Переопределяемый порядок определения имени
Может ли кто-нибудь помочь мне понять это.
public class Main {
public static void main(String[] args) {
System.out.println(X.Y.Z); // prints 'White'
}
}
class X {
static class Y {
static String Z = "Black";
}
static C Y = new C();
}
class C {
String Z = "White";
}
Заявления 'статический CY = новый C();' вызывает код для печати из «белого» вместо «черного» потому что это переопределяет статический член Y класса X. Кроме того, это ужасный код. Это очень непроницаемо. – sengbatz
@SkinnyJ Мне нравится, как это точно такой же вопрос только с классом 'C' вместо' W' и другими строками – SomeJavaGuy