gpt4 book ai didi

java - 在 Java 中找不到符号 - 构造函数

转载 作者:行者123 更新时间:2023-12-01 06:31:24 25 4
gpt4 key购买 nike

我得到找不到符号 - 构造函数 Occupant(Position)当我尝试编译 Occupant 的子类 Animal 时

public class Occupant
{
protected Position position;
public String string=" ";
protected String name;
protected String description;

public Occupant(Position position, String name, String description){
this.position=position;
this.name=name;
this.description=description;

}






public class Animal extends Occupant
{
protected String name;
protected String description;
protected double dangerLevel;
protected String stringRepresentation;
protected Position position;

public Animal(Position position, String name, String description, double dangerLevel) {
super(position);
super(name);
super(description);
this.position=position;
this.dangerLevel=dangerLevel;
this.name=name;
this.description=description;

}

为什么我会收到此错误?谢谢

最佳答案

以及所有其他答案都正确指出您应该使用三个参数调用单个 super 构造函数,而不是尝试一次执行一个参数,值得一提的是构造函数只能有 一个 super(...) 调用或一个 this(...) 调用。

每个构造函数(Object本身中的构造函数除外)只执行一个链接操作:

  • 如果您不指定任何其他内容,则可以隐式链接到无参数 super 构造函数。所以:

    Foo(int x)
    {
    }

    相当于

    Foo(int x)
    {
    super();
    }

    ...显然必须有一个可访问的无参数构造函数才能工作

  • 它可以显式链接到 super 构造函数,如您的示例

  • 它可以链接到同一类中的另一个构造函数,例如

    Foo()
    {
    this(10);
    }

    类内的链接不允许导致循环。 (不能有两个相互链接的构造函数。)

链接发生在执行任何变量初始值设定项之前,必须出现在构造函数主体的开头,并且同样,恰好有一个上述选项。

关于java - 在 Java 中找不到符号 - 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978485/

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