Не совсем разобрался с данным кодом:
interface DBObject {
DBObject initializeIdAndName(long id, String name);
}
static class User implements DBObject {
long id;
String name;
public User (вместо User можно записть "DBObject") initializeIdAndName(long id, String name) {
this.id = id;
this.name = name;
return this;
}
}
Метод initializeIdAndName объявлен в интерфесе DBObject и возращает свой же тип DBObject.
Потом мы в классе User наследуемся от этого интерфейса и должны написать его реализацию.
Чем отличается реализация интерфейса с типом User и типом DBObject?
Программа компилируется в любом из этих случаев и выдает один и тот же рузультат.