Задачу я решил, но остались вопросы. Объясните пожалуйста, как инициализируется переменные globalNumber и number и почему нельзя использовать в классе Tree только одну статическую переменную без второй нестатической. Спасибо! Пример кода для класса Tree:
public class Tree {
    //public static int globalNumber;
    public static int number;



    public Tree() {
      //this.number = ++globalNumber;
        this.number++;
    }

    public void info(Object s) {
        System.out.println(String.format("Дерево № %d , метод Object, параметр %s", number, s.getClass().getSimpleName()));
    }

    public void info(Number s) {
        System.out.println(String.format("Дерево № %d , метод Number, параметр %s", number, s.getClass().getSimpleName()));
    }

    public void info(String s) {
        System.out.println(String.format("Дерево № %d , метод String, параметр %s", number, s.getClass().getSimpleName()));
    }

}