/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Program
{
public static void FunF(A o)
{
o.F();
}
public static void FunG(A o)
{
o.G();
}
public static void main
(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()
{
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBQcm9ncmFtCnsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgIEZ1bkYoQSBvKQogICAgICAgIHsKICAgICAgICAgICAgby5GKCk7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBGdW5HKEEgbykKICAgICAgICB7CiAgICAgICAgICAgIG8uRygpOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIEEgYSA9IG5ldyBBKCk7CiAgICAgICAgICAgIEIgYiA9IG5ldyBCKCk7CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJGdW4oYSkgb3V0cHV0OiAiKTsgRnVuRihhKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRnVuKGIpIG91dHB1dDogIik7IEZ1bkYoYik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkZ1bihhKSBvdXRwdXQ6ICIpOyBGdW5HKGEpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJGdW4oYikgb3V0cHV0OiAiKTsgRnVuRyhiKTsgCgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJhLkYgb3V0cHV0OiAiKTsgYS5GKCk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImEuRyBvdXRwdXQ6ICIpOyBhLkcoKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiYi5GIG91dHB1dDogIik7IGIuRigpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJiLkcgb3V0cHV0OiAiKTsgYi5HKCk7CgogICAgICAgIH0KICAgIH0KICAgIGNsYXNzIEEKICAgIHsKICAgICAgICBwdWJsaWMgdm9pZCBGKCkKICAgICAgICB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQS5GIik7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgdm9pZCBHKCkKICAgICAgICB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQS5HIik7CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIEIgZXh0ZW5kcyBBCiAgICB7CiAgICAgICAgcHVibGljIHZvaWQgRigpCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkIuRiIpOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIHZvaWQgRygpCiAgICAgICAgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkIuRyIpOwogICAgICAgIH0KICAgIH0=