class Animal{
public void move(){
System.out.println("animal is moving");
}
}
class Cat extends Animal{
public void move(){
System.out.println("cat is catching the mouth"); //此处为方法覆盖
}
public void walk(){
System.out.println("cat is walking");
}
}
class Bird extends Animal{
public void move(){
System.out.println("bird is flying"); //此处也是方法覆盖override 覆盖的是Animal中的move方法
}
public void sing(){
System.out.println("bird is singing");
}
}
public class Instanceof{
public static void main(String[] args){
AnimalTest at = new AnimalTest();
at.test(new Cat());
at.test(new Bird());
}
}
class AnimalTest{
public void test(Animal a){
if(a instanceof Cat){
Cat c = (Cat)a;
c.walk();
}else if(a instanceof Bird){
Bird b = (Bird)a;
b.sing();
}
}
}