java类1
package com.bjsxt.polymophism;
public class Animal {
public void shout(){
System.out.println("叫了一声!");
}
}
class Dog extends Animal{
@Override
public void shout() {
System.out.println("汪汪汪!");
}
public void seeDoor(){
System.out.println("看门!");
}
}
class Cat extends Animal{
@Override
public void shout(){
System.out.println("喵喵喵!");
}
public void catchMouse(){
System.out.println("猫抓老鼠!");
}
}
class Mouse extends Animal{
@Override
public void shout(){
System.out.println("吱吱吱!");
}
}
java类2
package com.bjsxt.polymophism;
public class Test {
static void animalCry(Animal a){
a.shout();
}
public static void main(String[] args) {
Dog d = new Dog();
animalCry(d);
animalCry(new Cat());
//类型测试的转换
Animal a = new Dog(); //向上类型转换,自动的
Dog d2= (Dog) a; //强制类型转化,向下类型转化
d2.seeDoor();
}
}
java类3
package com.bjsxt.polymophism;
public class Test3 {
static void animalCry(Animal a){
a.shout();
}
public static void main(String[] args) {
Cat c = new Cat();
animalCry(c);
Animal a = new Cat();
Cat c3 = (Cat) a;
( (Cat) a ).catchMouse();
}
}