public class Animal {
String str;
public void voice(){
System.out.println(
"普通动物叫声!");
}
}
class Cat extends Animal{
public void voice(){
System.out.println(
"喵喵喵");
}
public void catchMouse(){
System.out.println(
"抓老鼠");
}
}
class Dog extends Animal {
public void voice(){
System.out.println(
"汪汪汪");
}
public void seeDoor(){
System.out.println(
"看门!");
}
}
class Tiger extends Animal {
public void voice(){
System.out.println(
"哇哇哇");
}
}
class Pig extends Animal {
public void voice(){
System.out.println(
"哼哼哼");
}
}
public class Test {
public static void testAnimalVoice(Animal c){
c.voice();
if(c instanceof Cat){
((Cat) c).catchMouse();
}
}
public static void main(String[] args) {
Animal a =
new Cat();
Cat a2 = (Cat)a;
testAnimalVoice(a);
}
}
注:this永远指向当前对象!