Вы не можете безопасно убрать символ новой строки после того, как он был напечатан (вывод символа возврата на одну позицию работает в зависимости от терминала, но вы действительно не хотите этого делать). Я думаю, что, вероятно, логичный способ создать это - использовать одну функцию суперкласса:
public void print() {
System.out.println(toString());
}
А затем переопределить toString
при необходимости:
Superclass
public String toString() {
return "ID " + id + " Title " + title + " <" + year + "> ";
}
Подкласс
public String toString() {
return super.toString() + " ... more stuff";
}