In [ ]:
class Main {
    public static void main(String[] args) {
        Parent parentObject = new Parent(1);
        Son sonObject = new Son(2, 2);
        Daughter daughterObject = new Daughter(3, 3);
        
        parentObject = sonObject;
        //sonObject = parentObject();
        
        System.out.println(parentObject);
        //System.out.println(sonObject);
        //sonObject = parentObject;
        //daughterObject = sonObject;
    }
}
class Parent {
    private int _test;
    
    public Parent(test) {
        _test = test;
    }
    public String toString() {
        String test = _test;
        return test;
    }
}
class Son extends Parent {
    private int _son;
    public Son(int son, int test) {
        super(test); 
        _son = son;
    }
    public String toString() {
        String son = _son;
        String test = super.toString();
        son = son + " " + test;
        return son;
    }
}
class Daughter extends Parent {
    private int _daughter;
    public Daughter(int daughter, int test) {
        super(test);
        _daughter = daughter;
    }
}


org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: Son.call() is applicable for argument types: () values: []
Possible solutions: wait(), any(), wait(long), any(groovy.lang.Closure), each(groovy.lang.Closure), wait(long, int)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:100)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815)
	at Main.invokeMethod(Script33.groovy)
	at org.codehaus.groovy.runtime.InvokerHelper$1.run(InvokerHelper.java:452)
	at org.scijava.plugins.scripting.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:303)
	at org.scijava.plugins.scripting.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:122)
	at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
	at org.scijava.script.ScriptModule.run(ScriptModule.java:159)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:167)
	at org.scijava.jupyter.kernel.evaluator.Worker.run(Worker.java:109)
	at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:220)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: groovy.lang.MissingMethodException: No signature of method: Son.call() is applicable for argument types: () values: []
Possible solutions: wait(), any(), wait(long), any(groovy.lang.Closure), each(groovy.lang.Closure), wait(long, int)
	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
	at Main.main(Script33.groovy:8)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	... 18 more