Всем привет! Не могу понтять, как работает метод private static void print(int number) Вот кусочек кода из условия
public static void main(String[] args) {
        String string = "CodeGym!";
        char[] charArray = string.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            print(charArray[i]);
        }
    }

    private static void print(int number) {
        String result = String.format("In Unicode, the character %s is %d, but in binary it is %s", (char) number, number, toBinary(number));
        System.out.println(result);
    }
метод print должен получать int на вход, а получает char, но всё работает, почему? Я помню, что есть юникод, но ведь это всё равно разные типы данных. P.S. toBinary - метод, который надо написать самому