Полиморфизм - неоднозначная ошибкаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Полиморфизм - неоднозначная ошибка

Сообщение Anonymous »

Я задал вчера подобный вопрос, но возникла еще одна проблема. < /p>

Код: Выделить всё

class Cat {
public void isClawedBy(Cat c, Kitten k){
System.out.println("Clawed by a cat");
}
}

class Kitten extends Cat{
public void isClawedBy(Kitten k, Cat c){
System.out.println("Clawed by a Kit");
}
}

Cat g = new Cat();
Cat s = new Kitten();
Kitten t = new Kitten();

g.isClawedBy(s,t);
s.isClawedBy(t,s);
t.isClawedBy(t,t);
Проблема, которая меня смущает, связана с t.isClawedBy(t,t);. Я понимаю, что s.isClawedBy(t,s); выдаст ошибку, поскольку s имеет статический тип cat.

Но t.isClawedBy(t ,t); выдает ошибку «Метод isClawedBy(Kitten, Cat) неоднозначен для типа Kitten». Если я изменю код на t.isClawedBy(s,t); или t.isClawedBy(t,s);, он будет работать, но не уверен, почему он не работает для (t,t) .

Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/170 ... uous-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»