- 多态(polymorphism)

- 代码
Animal.java
public class Animal {
private String eye;
public void voice(){
System.out.println("voice");
}
}
Cat.java
public class Cat extends Animal{
@Override
public void voice(){
System.out.println("喵喵");
}
//自己独有的方法
public void catchMouse(){
System.out.println("抓老鼠");
}
}
Dog.java
public class Dog extends Animal {
@Override
public void voice() {
System.out.println("汪汪");
}
//自己独有的方法
public void lookDoor(){
System.out.println("看门");
}
}
Pig.java
public class Pig extends Animal {
@Override
public void voice() {
System.out.println("哼哼");
}
}
TestPolymorphism.java
public class TestPolyMorphism {
public static void testAnimal(Animal a){
a.voice();
if(a instanceof Cat){
((Cat) a).catchMouse();
}
}
public static void main(String[] args) {
TestPolyMorphism t = new TestPolyMorphism();
Animal a = new Cat();//多态,父类的引用指向子类的对象
/*
* Cat c = new Cat();
* Animal a = c;
*/
t.testAnimal(a);
}
}
Animal.java public class Animal { private String eye; public void voice(){ System.out.println("voice"); } } Cat.java public class Cat extends Animal{ @Override public void voice(){ System.out.println("喵喵"); } //自己独有的方法 public void catchMouse(){ System.out.println("抓老鼠"); } } Dog.java public class Dog extends Animal { @Override public void voice() { System.out.println("汪汪"); } //自己独有的方法 public void lookDoor(){ System.out.println("看门"); } } Pig.java public class Pig extends Animal { @Override public void voice() { System.out.println("哼哼"); } } TestPolymorphism.java public class TestPolyMorphism { public static void testAnimal(Animal a){ a.voice(); if(a instanceof Cat){ ((Cat) a).catchMouse(); } } public static void main(String[] args) { TestPolyMorphism t = new TestPolyMorphism(); Animal a = new Cat();//多态,父类的引用指向子类的对象 /* * Cat c = new Cat(); * Animal a = c; */ t.testAnimal(a); } }