I have classes as follows
public class Useful 
{
    public void f(Object a)
    {
        System.out.println("In base f");
    }
    public void g(String a)
    {
        System.out.println("In base g");
    }
}
public class MoreUseful extends Useful 
{
    public void f(String a)
    {
        System.out.println("In derived f");
    }
    public void g(Object a)
    {
        System.out.println("In derived g");
    }
}
I am trying to override base class method but I am changing the parameters in derived class. in method MoreUseful.f() I am using subclass parameter (String) as against Object in base class. in method MoreUseful.g() I am using superclass parameter (Object) as against String in base class.
Is it possible to override these way? Which of the above two cases will be correct overriding?
 
     
     
    