Java 父子类StackOverflowerr异常
我在学校有两个班级 班级学校Java 父子类StackOverflowerr异常,java,jakarta-ee,parent-child,Java,Jakarta Ee,Parent Child,我在学校有两个班级 班级学校 package school; public class people { String Name = null; public String getName() { return "Super Class Name : " + Name; } public void setName(String name) { Name = name; } } 班级学生 pac
package school;
public class people
{
String Name = null;
public String getName()
{
return "Super Class Name : " + Name;
}
public void setName(String name)
{
Name = name;
}
}
班级学生
package school;
public class students extends people
{
public static void main(String[] args)
{
people objpeople1 = new people();
people objpeople2 = new students();
objpeople1.setName("David");
objpeople2.setName("Davis");
System.out.println(objpeople1.getName());
System.out.println(objpeople2.getName());
}
@Override
public String getName()
{
return "Child Class Name is: "+ getName();
}
}
第一个getName方法工作正常。当我尝试使用第二个方法时,它生成异常
objpeople2.getName()正在生成java.lang.StackOverflower错误异常请尝试以下操作:
@Override
public String getName(){
return "Child Class Name is: " + super.getName();
}
您的
objpeople2.getName()
正在访问当前类的getName()
,这会导致递归调用相同的方法,这是引发StackOverforError异常的方式。使用super
关键字引用当前类的超类。在子类中,递归调用getName()
方法,这会导致内存不足,从而导致StackOverflowException
试着像吼叫一样打电话
@Override
public String getName(){
return "Child Class Name is: " + name;
}
在这个方法中,getName()作为递归调用调用。因此,它从未结束对同一方法的调用,它给出的StackOverflowException将其更改如下
@Override
public String getName()
{
return "Child Class Name is: "+ super.Name;
}
谢谢你的回复我知道了非常感谢
@Override
public String getName()
{
return "Child Class Name is: "+ super.Name;
}