/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Program
{
public static void FunF(A o)
{
o.F();
}
public static void FunG(A o)
{
o.G();
}
static void main0
(String[] args
) {
A a = new A();
B b = new B();
System.
out.
print("Fun(a) output: "); FunF
(a
); System.
out.
print("Fun(b) output: "); FunF
(b
); System.
out.
print("Fun(a) output: "); FunG
(a
); System.
out.
print("Fun(b) output: "); FunG
(b
);
System.
out.
print("a.F output: "); a.
F(); System.
out.
print("a.G output: "); a.
G(); System.
out.
print("b.F output: "); b.
F(); System.
out.
print("b.G output: "); b.
G();
}
}
class A
{
public void F()
{
}
public void G()
{
}
}
class B extends A
{
public void F()
{
}
public void G()
{
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgUHJvZ3JhbQp7CiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkICBGdW5GKEEgbykKICAgICAgICB7CiAgICAgICAgICAgIG8uRigpOwogICAgICAgIH0KICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgRnVuRyhBIG8pCiAgICAgICAgewogICAgICAgICAgICBvLkcoKTsKICAgICAgICB9CgogICAgICAgIHN0YXRpYyB2b2lkIG1haW4wKFN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewogICAgICAgICAgICBBIGEgPSBuZXcgQSgpOwogICAgICAgICAgICBCIGIgPSBuZXcgQigpOwoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRnVuKGEpIG91dHB1dDogIik7IEZ1bkYoYSk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkZ1bihiKSBvdXRwdXQ6ICIpOyBGdW5GKGIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJGdW4oYSkgb3V0cHV0OiAiKTsgRnVuRyhhKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRnVuKGIpIG91dHB1dDogIik7IEZ1bkcoYik7IAoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiYS5GIG91dHB1dDogIik7IGEuRigpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJhLkcgb3V0cHV0OiAiKTsgYS5HKCk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImIuRiBvdXRwdXQ6ICIpOyBiLkYoKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiYi5HIG91dHB1dDogIik7IGIuRygpOwoKICAgICAgICB9CiAgICB9CiAgICBjbGFzcyBBCiAgICB7CiAgICAgICAgcHVibGljIHZvaWQgRigpCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkEuRiIpOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHZvaWQgRygpCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkEuRyIpOwogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBCIGV4dGVuZHMgQQogICAgewogICAgICAgIHB1YmxpYyB2b2lkIEYoKQogICAgICAgIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCLkYiKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyB2b2lkIEcoKQogICAgICAgIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCLkciKTsKICAgICAgICB9CiAgICB9