Друзья, привет! Задачу решил, но остались вопросы, почему решение принято? Код внизу. Объекты сравниваю путем 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";
        }
    }