Java多态性代码“找不到构造函数”

时间:2011-10-09 11:55:33

标签: java constructor

我正在尝试向我自己解释java多态性,所以我只是创建了一个项目,显示FamilySuperClassSubClasses are兄弟姐妹们

事情就是当我编译时,我收到一个错误说 Cannot find the Constructor Sisters Cannot find the Constructor Brothers

有人可以向我解释一下吗?

谢谢你们。

class Family {

private String name,age;

public Family(String name,String age){

    this.name = name;
    this.age = age;

}

public String toString(){

    return "name : " + name + "\tage " + age ;
}
}

class Brothers extends Family{

public Brothers(String name, String age){
    super(name,age);
}
}
class Sisters extends Family{

public Sisters(String name, String age){
    super(name,age);
}

 }

class FamilyTest{

public static void main(String[] args){

Family[] Member= new Family[3];

Member[1] = new Sisters("LALA",22);
Member[2] = new Brothers("Mike",18);
 }
 }

3 个答案:

答案 0 :(得分:3)

您将age定义为String,但是将整数传递给它。

Member[1] = new Sisters("LALA", "22");
Member[2] = new Brothers("Mike", "18");

应该可以工作,但我建议你将age从String更改为int。

答案 1 :(得分:1)

public static void main(String[] args)
{
Family[] Member= new Family[3];

Member[1] = new Sisters("LALA","22");
Member[2] = new Brothers("Mike","18");

}

用此代码替换main(),

错误是:sistersbrothers的构造函数的参数是String,但是您将age作为Integer传递。

Sugggestion:您可以将年龄类型更改为int,这更正确。

答案 2 :(得分:0)

请注意,这只是您可以在Java中使用的多态类型之一,其他类型是GenericsFunction overloading