Код полиморфизма Java «Не удается найти конструктор» - PullRequest
0 голосов
/ 09 октября 2011

Я пытаюсь объяснить Java-полиморфизм самому себе, поэтому я просто создал проект, показывающий, что Family это SuperClass и SubClasses 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 ]

3 голосов
/ 09 октября 2011

У вас есть age, определенное как строка, но вы передаете ему целое число.

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

должно работать, но я бы посоветовал вам изменить age со строки на int.

1 голос
/ 09 октября 2011
public static void main(String[] args)
{
Family[] Member= new Family[3];

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

}

Заменить main () на этот код,

Ошибка: аргументы для конструкторов sisters и brothers были String, но вы передали age как Integer.

Предложение: вы можете изменить тип возраста на int, что более правильно.

0 голосов
/ 09 октября 2011

Обратите внимание, что это только один из типов полиморфизма, который вы можете использовать в Java, другие Generics и Function overloading

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...