Base abstract class defining the workflow for opening and processing files.
@author
@author
@version
abstract class FileHandler {
Opens a file given its filename.
@param filename
@return
public abstract String open(String filename);
Processes file data according to its format.
@param data
@return
public abstract String process(String data);
}
Handles plain text file operations.
@author
@author
class TextFileHandler extends FileHandler {
@Override
public String open(String filename) {
return "Opening text file: " + filename;
}
@Override
public String process(String data) {
return "Processing text data: " + data;
}
}
Handles image file operations.
@author
@author
class ImageFileHandler extends FileHandler {
@Override
public String open(String filename) {
return "Opening image file: " + filename;
}
@Override
public String process(String data) {
return "Processing image data: " + data;
}
}
Driver class demonstrating file handler polymorphism.
@author
@author
public class FileHandlerPolymorphismExample {
Uses polymorphism to open and process files regardless of concrete handler type.
@param handler
@param filename
@param data
public static void handleFile(FileHandler handler, String filename, String data) {
System.out.println(handler.open(filename));
System.out.println(handler.process(data));
}
Main execution method.
@param args
public static void main(String[] args) {
FileHandler textHandler = new TextFileHandler();
FileHandler imageHandler = new ImageFileHandler();
handleFile(textHandler, "document.txt", "Hello World");
System.out.println();
handleFile(imageHandler, "photo.jpg", "Binary image payload");
}
}