| interface A{} class B implements A
 {
 public String test()
 {
 return "yes";
 }
 }
 class Demo
 {
 static A get()
 {
 return new B();
 }
 public static void main(String[] args)
 {
 A a=get(); //多态;实现了父类引用指向子类对象。
 //上面这句话等同:A a =new B();   实现了父类引用指向子类对象。
 //现在把方法get()的反回值 new B() ,B的一个实例看作成一个A的对象来用。
 //例如:将一个猎人当作一个普通人来看了。 其中,A为猎人,B为普通人,
 System.out.println(a.test());//既然将猎人只当一个普通人来看,那么他就不会有猎人才具备的打猎方法了。其中将test()看做猎人的打猎方法。
 //因为A中没有test()方法,所以a.test()编译错误。
 //如果你将  A a=get(); 改成  B a=(B) get(); ,就可以调用a.test()方法了。
 }
 }
 
 
 |