В прошлой лекции, а также в этой статье, нам объяснили, что instanceof проверяет происхождение объекта, на который ссылается переданная переменная, т.е. наследует ли конструкторы/интерфейсы другого класса. Однако по условию нам ясно сказано что Класс Number является родителем классов Byte, Double, Float, Integer, Long и Short. Т. е., поскольку мы проверяем, наследуется ли Number от классов-оберток, которые по факту его дети, ответ должен быть однозначно false. Но у нас true. Почему?
if (number instanceof Byte) return (byte) number / 2 + "b"; //true