You are developing software for a computer file system. The system has several kinds of files (e.g. Word documents and video clips). Every file has a name. Each kind of file has a distinctive action that's taken when it is opened. A client can ask to redisplay a file; for most kinds of files, this does nothing, but some kinds of files may do something interesting. Declare and implement the classes named in the sample program below in such a way that the program compiles, executes, and produces exactly the output shown. (A real implementation would actually play videos and show pictures, but for now we'll stick to simple text output.) Do not change the implementations of main and openAndRedisplay. public class FileExample { public static void main(String[] args) { File[] files = new File[4]; files[0] = new WordDoc("script.doc"); // Videos have a name and running time files[1] = new Video("trailer.mpg", 57); files[2] = new Picture("radcliffe.jpg"); files[3] = new Picture("watson.jpg"); for (int k = 0; k < files.length; k++) openAndRedisplay(files[k]); } public static void openAndRedisplay(File f) { System.out.println(f.getName() + ": " + f.open()); System.out.print("Redisplay: "); f.redisplay(); System.out.println(); } } // You declare File, WordDoc, Video, and Picture Your declarations of those classes must be such that the code above will produce this output: script.doc: open Word document Redisplay: trailer.mpg: play 57 second video Redisplay: replay video radcliffe.jpg: show picture Redisplay: watson.jpg: show picture Redisplay: