im new для Java. Я нашел этот пример в книге. Я ожидал, что он напечатает «ab» или «abc», но вместо этого он выдает исключение. Может ли кто-нибудь объяснить, почему это происходит? Заранее спасибо.Почему этот код генерирует исключение NullPointerException?
public class Test {
class A {
String str = "ab";
A() {
printLength();
}
void printLength() {
System.out.println(str.length());
}
}
class B extends A {
String str = "abc";
void printLength() {
System.out.println(str.length());
}
}
public static void main(String[] args) {
new Test().new B();
}
}
Вот исключение
Exception in thread "main" java.lang.NullPointerException
at c.Test$B.printLength(Test.java:25)
at c.Test$A.<init>(Test.java:13)
at c.Test$B.<init>(Test.java:21)
at c.Test.main(Test.java:30)
Каждое исключение должно иметь stacktrace. Пожалуйста, опубликуйте его. –
новый тест(). Новый B(); это правильно.? – Saif