java - 父子类 StackOverflowError 异常

标签 java jakarta-ee parent-child

我有两个类(class)的学校套餐

类(class)学校

package school;

public class people 
{
    String Name = null; 

    public String getName() 
    {
        return "Super Class Name : " + Name;
    }

    public void setName(String name) 
    {
        Name = name;
    }
}

类(class)学生

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.StackOverflowError 异常

最佳答案

试试这个:

@Override
public String getName(){
    return "Child Class Name is: " + super.getName();
}

您的 objpeople2.getName() 正在访问当前类的 getName(),这导致递归调用相同的方法,这就是抛出 StackOverFlorError 异常的方式。使用super关键字来引用当前类的父类(super class)。

关于java - 父子类 StackOverflowError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271730/

相关文章:

java - 生产者重试时分区中的 Kafka 消息排序

java - 如何使用架构组件观察数据库删除事件

java - 部署时如何将 jar 文件包含在不同的包中

html - 使用 CSS 根据子条件设置父级样式

c# - 从子窗体访问主窗体

java - HttpClient 获取状态代码并按照重定向获取结束页面状态代码

java - 为什么 clone() 没有按预期工作?

java - 在 google appengine 部署 war 文件后从内部检查 war 文件

java - 在 Pentaho BiServer 中找不到错误 404 pivot4j 文件

javascript - Angular 4-如何仅在其父级完全呈现后才运行指令方法