Don, with C++ inheritance, if you choose to inherit a class ALL the public
Nah. Inheritance gets you all public and protected functions from parent. But one needs to know the difference between public keyword of members and public inheritance. This case is public inheritance, a standard way to inherit. You can also inherit privately, in which case the public members become private members so they can't be accessed from outside. I hate this fact that they just can't invent words but instead use public in different places for different meanings, like public members, public static variables, public inheritance. It's madness.
IMHO, this should be done: println should instead of calling print then print(0d, 0a), call print then cursor(home), cursor(next line). This way lcd library needs to define cursor(home) to be setcursor(0,current row), and cursor(next line) as setcursor(column,current row+1). Since lcd library is not making use of cursor position, it can't be implemented. Then serial can define cursor(home) as write(od) etc.