I have a base class called Items and 3 derived classes, and within the Items base class i have a print function of the form
public void print(){
Syst
You can't safely retract a newline after it's been printed (outputting a backspace character works depending on the terminal, but you really don't want to do that). I think probably the logical way to architect this is have one superclass function:
public void print() {
System.out.println(toString());
}
And then override toString
as needed:
public String toString() {
return "ID " + id + " Title " + title + " <" + year + "> ";
}
public String toString() {
return super.toString() + " ... more stuff";
}
Do not do println
on the base class use print
instead
It looks like overriding toString()
is more appropriate, here. You can then control the printing where it's needed, and it can go to System.out
, or a file, or a logger, and everything else.
@Override public String toString() {
return String.format("ID %s Title %s <%d> ", id, title, year);
}
Then in the child classes:
@Override public String toString() {
return super.toString() + " whatever";
}
replace println
with System.out.print