У меня есть код Java:Получил неожиданный выход в Java
class Protected{
int n = 1;
public Protected(){
System.out.println("Constructor of protected");
System.out.println("========================");
System.out.println("n = "+n);
System.out.println();
}
}
class Derived extends Protected{
Derived(){
System.out.println("Constructor of derived");
System.out.println("======================");
System.out.println("n = "+(n+1));
}
}
public class Demo{
public static void main(String args[]){
Derived ob2 = new Derived();
}
}
Я получил результат, как:
constructor of protected
========================
n=1
constructor of Derived
========================
n=2
Это то, что я хочу:
constructor of Derived
========================
n=2
Вы не можете предотвратить суперкласс Инициирования , Вы не должны вводить побочные эффекты в конструктор, вместо этого вы должны добавить метод для печати этой информации и переопределить ее. Тогда он будет делать то, что вы хотите. –