正确扩展我的 class

Extend my class properly

我正在使用 class 动物。它的构造函数以名称作为参数。

public class Animal {
    String name;
    public Animal(String name) {
        this.name = name;
    }

    public static void main(String[] args) {
         Animal cow = new Animal("Cow");
         Humain pierre = new Humain("Pierre", true);
    }
}

和一个从 Animal 延伸而来的 class Human。它的构造函数以名称和布尔值作为参数。

public class Humain extends Animal{
    boolean isIntelligent;

    public Humain(String name, boolean isIntelligent) {
        this.name = name;
        this.isIntelligent = isIntelligent;
    }

}

为什么我在 IDE (netbean) 中收到此错误消息:"Constructor Animal in class Animal cannot be applied to given type"?我觉得我遗漏了一些关于 class 扩展和构造函数的东西。

你需要在 class Human 的构造函数中调用 super。代码:

public class Humain extends Animal{
    boolean isIntelligent;

    public Humain(String name, boolean isIntelligent) {
        super(name);

        this.isIntelligent = isIntelligent;
    }

}

试试这个:

public class Humain extends Animal{
  boolean isIntelligent;

  public Humain(String name, boolean isIntelligent) {
      super(name);
      this.isIntelligent = isIntelligent;
  }
}

当你有一个带参数的构造函数时,在B中创建带参数的构造函数时,你需要为A传递一个参数给super()

示例:

class A {
    public A(int x) {   }
  }

  class B extends A {
    public B(int x ) 
    {
       super(x); // need to specify the parameter for class A
       //... 
    }
  }

在你的情况下应该是:

public Humain(String name, boolean isIntelligent) {
      super(name);

      this.isIntelligent = isIntelligent;
  }