Друзья, привет!
Задачу решил, но остались вопросы, почему решение принято?
Код внизу. Объекты сравниваю путем Object.equals. Но ведь этот метод в Object сравнивает ссылки на объект, не так ли? Почему же тогда мой код, сравнивая вывод метода о содержании костей с "Yes" возвращает true? Не должен ли он вернуть false, основываюясь на том, что строка "Yes" из условия и строка, возвращенная методом, это, вообще-то разные объекты в памяти?
package com.javarush.task.task15.task1505;
import java.util.ArrayList;
import java.util.List;
/*
ООП - исправь ошибки в наследовании
*/
public class Solution {
public static interface LivingPart {
Object containsBones();
}
public static class BodyPart implements LivingPart {
private String name;
public BodyPart(String name) {
this.name = name;
}
public Object containsBones() {
return "Yes";
}
public String toString() {
return containsBones().equals("Yes")? name + " содержит кости" : name + " не содержит кости";
}
}
public static class Finger extends BodyPart {
private boolean isArtificial;
public Finger(String name, boolean isArtificial) {
super(name);
this.isArtificial = isArtificial;
}
public Object containsBones() {
return super.containsBones().equals("Yes") && !isArtificial ? "Yes" : "No";
}
}