class A
{
public int calc(double num) {
System.
out.
println("calc de A"); return (int)(num+1);
}
}
class B extends A
{
public int calc(long num) {
System.
out.
println("calc de B"); return (int)(num+2);
}
}
class C extends B
{
public int calc(int num) {
System.
out.
println("calc de C"); return num+3;
}
}
class D extends C
{
public int calc(float num) {
System.
out.
println("calc de D"); return (int)(num+4);
}
}
class Main
{
public static void main
(String[] args
) {
int num1 = 10;
long num2 = num1;
A a1 = new D();
A a2 = new D();
int result = a1.calc(num1) + a2.calc(num2);
System.
out.
println("Numero: "+ result
); }
}
CiAgICBjbGFzcyBBCiAgICB7CiAgICAgICAgcHVibGljIGludCBjYWxjKGRvdWJsZSBudW0pIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYWxjIGRlIEEiKTsKICAgICAgICAgICAgcmV0dXJuIChpbnQpKG51bSsxKTsKICAgICAgICAgICAgCiAgICAgICAgfQogICAgfQogICAgCiAgICBjbGFzcyBCIGV4dGVuZHMgQQogICAgewogICAgICAgIHB1YmxpYyBpbnQgY2FsYyhsb25nIG51bSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhbGMgZGUgQiIpOwogICAgICAgICAgICByZXR1cm4gKGludCkobnVtKzIpOwogICAgICAgICAgICAKICAgICAgICB9CiAgICB9CiAgICAKICAgIGNsYXNzIEMgZXh0ZW5kcyBCCiAgICB7CiAgICAgICAgcHVibGljIGludCBjYWxjKGludCBudW0pIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYWxjIGRlIEMiKTsKICAgICAgICAgICAgcmV0dXJuIG51bSszOwogICAgICAgICAgICAKICAgICAgICB9CiAgICB9CiAgICAKICAgIGNsYXNzIEQgZXh0ZW5kcyBDCiAgICB7CiAgICAgICAgcHVibGljIGludCBjYWxjKGZsb2F0IG51bSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhbGMgZGUgRCIpOwogICAgICAgICAgICByZXR1cm4gKGludCkobnVtKzQpOwogICAgICAgICAgICAKICAgICAgICB9CiAgICB9CiAgICAKICAgIGNsYXNzIE1haW4KICAgIHsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgIAkJaW50IG51bTEgPSAxMDsKICAgICAgICAgICAgbG9uZyBudW0yID0gbnVtMTsKICAgICAgICAgICAgCiAgICAgICAgICAgIEEgYTEgPSBuZXcgRCgpOwogICAgICAgICAgICBBIGEyID0gbmV3IEQoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGludCByZXN1bHQgPSBhMS5jYWxjKG51bTEpICsgYTIuY2FsYyhudW0yKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtZXJvOiAiKyByZXN1bHQpOwogICAgCX0KICAgIH0=