Let's assume that I'm extending a graphical file chooser class (
This class has methods which display the file chooser dialog and return a status signature in the form of an
APPROVE_OPTION if the user selects a file and hits Open /Save,
CANCEL_OPTION if the user hits Cancel, and
ERROR_OPTION if something goes wrong. These methods are called
I find this cumbersome, so I decide to make another method that returns a
File object: in the case of
APPROVE_OPTION, it returns the file selected by the user; otherwise, it returns
null. This is where I run into a problem: would it be okay for me to keep the
showDialog() name, even though methods with that name — and a different return type — already exist? To top it off, my method takes an additional parameter: a
File which denotes in which directory the file chooser should start.
My question to you: Is it okay to call a method the same name as a superclass method if they return different types? Or would that be confusing to API users? (If so, what other name could I use?)
Alternatively, should I keep the name and change the return type so it matches that of the other methods?
public int showDialog(Component parent, String approveButtonText) // Superclass method
public File showDialog(Component parent, File location) // My method