public class Example {
public static void main(String args[]){
Parent p = new Child();
p.m2();
}
}
class Parent{
void m1(){
System.out.println("Parent : m1");
m2();
}
void m2(){
System.out.println("Parent : m2");
}
}
class Child extends Parent{
void m1(){
super.m1();
System.out.println("Child : m1");
}
void m2(){
System.out.println("Child : m2");
m1();
}
}
このコードでは、Parentクラスのm1()メソッドが呼び出されると、子のm2()メソッドであるm2()メソッドが呼び出され、StackOverflowErrorという結果になるためです。Javaで次の問題を解決するには?
親のm1()メソッドで、Childのm2()メソッドの代わりにParentのm2()メソッドを呼び出すように変更する必要があるのは何ですか?
はこの宿題ですか? – Bernard
誰かが私が働く場所にその種のコードを書いた場合、私は真剣に別の仕事を見つけることを検討します。私はそれが教育運動であることを心から願っています。 –
私は生徒が実生活プロジェクトにそのようなコードを書かないことを願っています –