не знаю как вывести на экран именно имена животных., а не ссылки на объекты. Как вообще дать имена всем животным? Помогите разобраться
package com.javarush.task.task08.task0820;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/*
Множество всех животных
*/

public class Solution {
    public static void main(String[] args) {
        Set<Cat> cats = createCats();
        Set<Dog> dogs = createDogs();

        Set<Object> pets = join(cats, dogs);
        printPets(pets);

        removeCats(pets, cats);
        printPets(pets);
    }

    public static Set<Cat> createCats() {
        HashSet<Cat> cats = new HashSet<>();
        for (int i = 0; i < 4; i++) {
            cats.add(new Cat("Murzik"+i));
        }
        //напишите тут ваш код

        return cats;
    }

    public static Set<Dog> createDogs() {
        HashSet<Dog> dogs = new HashSet<>();
        for (int i = 0; i < 3; i++) {
            dogs.add(new Dog("Barboss"+i));
        }//напишите тут ваш код
        return dogs;
    }

    public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs) {
        HashSet <Object> pets = new HashSet<>();
        pets.addAll(cats);
        pets.addAll(dogs);//напишите тут ваш код
        return pets;
    }

    public static void removeCats(Set<Object> pets, Set<Cat> cats) {
        pets.removeAll(cats);//напишите тут ваш код
    }

    public static void printPets(Set<Object> pets) {
        Iterator itr = pets.iterator();
        while (itr.hasNext()){
            System.out.println(itr.next());
        }
    }

    public static class Cat{
        String name;
        public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return name;
        }
    }
    public static  class Dog{
        String name;
        public void setName(String name) {
            this.name = name;
        }
        public String getName(){
            return name;
        }
    }//напишите тут ваш код
}