package com.javarush.task.task05.task0517;
/*
Конструируем котиков
*/
public class Cat {
//напишите тут ваш код
private String name, address, color;
private int age, weigt;
public Cat(String name) {
this.name = name;
this.address = null;
this.color = "grey";
this.age = 1;
this.weigt = 1;
}
public Cat(String name, int age, int weigt) {
this.name = name;
this.address = null;
this.color = "grey";
this.age = age;
this.weigt = weigt;
}
public Cat(String name, int age) {
this.name = name;
this.address = null;
this.color = "grey";
this.age = age;
this.weigt = 1;
}
public Cat(String color, int weigt) {
this.name = null;
this.address = null;
this.color = color;
this.age = 1;
this.weigt = weigt;
}
public Cat(String address, String color, int weigt) {
this.name = null;
this.address = address;
this.color = color;
this.age = 1;
this.weigt = weigt;
}
public static void main(String[] args) {
}
}
MaxYe
8 уровень
подскажите, почему выдает ошибку Ошибка в файле com/javarush/task/task05/task0517/Cat.java в строке 33 constructor Cat(java.lang.String,int) is already defined in class com.javarush.task.task05.task0517.Cat
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
klavdiym
9 августа 2018, 17:06решение
Это нам видно что конструкторы разные - тот который с 26 строки и с 33, но компилятор разницы не видит. Для него они одинаковые т.к. берут одинаковый тип и в одинаковой последовательности.
+4
klavdiym
9 августа 2018, 17:07полезный
Советую - https://vertex-academy.com/tutorials/ru/konstruktory-slovo-v-java/
http://developer.alexanderklimov.ru/android/java/constructor.php
+2
Oleg KharabarukSoftware Developer в NerdySoft
9 августа 2018, 17:05решение
Java-машина в момент компиляции видит сигнатуру методов и типы параметров, которые передаются в них. Тоесть имена параметров которые вы передаете - пропадают.
В 33 строке вы создаете конструктор Cat(String, int), который уже был создан в 26 строке, cоответственно поэтому и выдает ошибку.
К примеру если вы поменяете местами передаваемые параметры на Cat(int, String) все будет успешно компилироваться.
+6