多态是一种运行时的行为,就是说在编译的时候,父类型的引用仍不知道它指向的是哪个对象,只有在运行的时候,它才会清楚自己指向哪个对象!~~
public class PolyTest4
{
public static void main(String[] args)
{
A a=null;
if(args[0].equals("1"))
{
a=new B();
}
else if(args[0].equals("2"))
{
a=new C();
}
else if(args[0].equals("3"))
{
a=new D();
}
a.method();
}
}
class A
{
public void method()
{
System.out.println("A");
}
}
class B extends A
{
public void method()
{
System.out.println("B");
}
}
class C extends A
{
public void method()
{
System.out.println("C");
}
}
class D extends A
{
public void method()
{
System.out.println("D");
}
}
这边还包含了两个概念,即upcast & downcast
upcast:无需显示的指定
downcast:需要显示的指定类型。