日期:2014-05-20 浏览次数:20979 次
public class StaticParamsDemo
{
public static void whichFoo(Base arg1, Base arg2)
{
arg1.foo(arg2);
}
public static void main(String []args)
{
Base b = new Base();
Derived d = new Derived();
whichFoo(b,b); //第一个参数是[color=#FF0000]b[/color]那就是进类Base 然后调用whichFoo,那第一个参数是类Base 自然就打印出Base 类中的第一个System.out.println("Base.Base");
whichFoo(b,d);//第一个参数是[color=#FF0000]b[/color]那就是进类Base 然后调用whichFoo,那第一个参数是类Base 自然就打印出Base 类中的第一个System.out.println("Base.Base");
whichFoo(d,b);//第一个参数是[color=#FF0000]d[/color]那就是进类Derived然后调用whichFoo,那第一个参数是类Derived 自然就打印出Derived类中的第一个System.out.println("Derived.Base");
whichFoo(d,d);//第一个参数是[color=#FF0000]d[/color]那就是进类Derived然后调用whichFoo,那第一个参数是类Derived 自然就打印出Derived类中的第一个System.out.println("Derived.Base");
}
}
------解决方案--------------------
public class StaticParamsDemo
{
public static void whichFoo(Base arg1, Base arg2)
{
arg1.foo(arg2);
}
public static void whichtwo(Base arg1,Derived arg2){
arg1.foo(arg2);
}
public static void main(String []args)
{
Base b = new Base();
Derived d = new Derived();
whichFoo(b,b);
whichtwo(b,d);
whichFoo(d,b);
whichtwo(d,d);
}
}
------解决方案--------------------
结果是:
Base.Base
Base.Derived
Derived.Base
Derived.Derived
------解决方案--------------------