в интерфейсе и в классе-реализаторе тип возвращаемого значения у метода должен быть одинаковый? в интерфейсе тип DBObject, а в классе User/
interface DBObject {
        DBObject initializeIdAndName(long id, String name);

    }

    static class User implements DBObject {
        long id;
        String name;
        public User initializeIdAndName(long id, String name){
            this.id = id;
            this.name = name;
            return this;

        }