我使用的是Animal类。它的构造函数将name作为参数。
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延伸的人类。它的构造函数取名为&一个布尔值作为参数。
public class Humain extends Animal{
boolean isIntelligent;
public Humain(String name, boolean isIntelligent) {
this.name = name;
this.isIntelligent = isIntelligent;
}
}
为什么我在IDE(netbean)中收到此错误消息:"类Animal中的构造函数Animal无法应用于给定类型" ?我觉得我错过了类扩展和构造函数。
答案 0 :(得分:1)
你需要在类Human的构造函数中调用super。代码:
public class Humain extends Animal{
boolean isIntelligent;
public Humain(String name, boolean isIntelligent) {
super(name);
this.isIntelligent = isIntelligent;
}
}
答案 1 :(得分:0)
当你有一个带参数的构造函数时,在使用B中的参数创建构造函数时,你需要传入一个参数为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;
}
答案 2 :(得分:-1)
试试这个:
public class Humain extends Animal{
boolean isIntelligent;
public Humain(String name, boolean isIntelligent) {
super(name);
this.isIntelligent = isIntelligent;
}
}