По коду видно, что при создании переменной NEO мы указываем ее тип, прописанным позже интерфейсом, это как? Что это нам дает, где можно об этом почитать? ( Строка №7)
public class Solution {
    public static void main(String[] args) throws Exception {
        System.out.println(Matrix.NEO);
    }

    static class Matrix {
        public static DBObject NEO = new User().initializeIdAndName(1, "Neo");
    }

    interface DBObject {
        DBObject initializeIdAndName(long id, String name);
    }

    static class User implements DBObject {
        long id;
        String name;

        @Override
        public String toString() {
            return String.format("User has name %s, id = %d", name, id);
        }

        public User initializeIdAndName(long id, String name){
            ///// здесь указано решение, поэтому его нет......, дабы не нарушать правила сообщества ////////////////////////
        }

    }
}