/**
* @(#)这个例子告诉我们动态绑定其实是针对函数的,字段不会受影响
*例如:animal类被赋值为鱼类后,调用name字段仍然输出“动物类”,调用
*eat()则输出“鱼吃”
*
*
*
* @author
* @version 1.00 2008/9/17
*/
class Animal{
String name="动物类";
void eat(){
System.out.println("动物吃");
}
}
class fish extends Animal{
String name="鱼类";
void eat(){
System.out.println("鱼吃");
}
}
class integration{
public static void main(String[] agrs){
Animal an=new fish();
System.out.println("===========================");
if (an instanceof fish){
System.out.println("an是鱼");
}
else{
System.out.println("an不是鱼");
}
System.out.println(an.name);
//System.out.println(f.name);
System.out.println();
// an=f; //对象赋值
System.out.println();
if (an instanceof fish){
System.out.println("an是鱼");
}
else{
System.out.println("an不是鱼");
}
an.eat();//这时an已经是鱼类了
System.out.println(an.name);
//System.out.println(f.name);
System.out.println("===========================");
}
}