interface Aclass {
public String show(Aclass obj) ;
}
class Bclass implements Aclass{
@Override
public String show(Aclass obj) {
return ("show(1 obj)");
}
public String show(Bclass obj){
return "show(2 obj)";
}
}
class C extends Bclass {
public String show(Bclass obj){
return "show(3 obj)";
}
}
public class InterfaceTest1 {
public static void main(String[] args){
Bclass fc1=new Bclass ();
C c2=new C();
Aclass f3= new C();
System.out.println("1-"+fc1.show(fc1));//1-show(2 obj)
System.out.println("2-"+c2.show((C)f3));//2-show(3 obj)
System.out.println("3-"+((Bclass)f3).show(c2));//3-show(3 obj)
System.out.println("3-"+((Bclass)f3).show(fc1)); //3-show(3 obj)
}
}