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