gpt4 book ai didi

java - 如何解决java中的以下问题?

转载 作者:行者123 更新时间:2023-11-30 05:55:55 26 4
gpt4 key购买 nike

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();
}
}

此代码导致 java.lang.StackOverflowError,因为当调用父类的 m1() 方法时,它调用 m2() 方法,该方法是子类的 m2() 方法,因此导致 StackOverflowError。

Parents m1() 方法中应该更改什么,以便它调用 Parent 的 m2() 方法而不是 Child 的 m2() 方法?

最佳答案

做这样的事情:

class Parent{

void m1(){
System.out.println("Parent : m1");
m2impl();
}
private void m2impl() { /* whatever */ }

void m2(){
m2impl();
}
}

关于java - 如何解决java中的以下问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com