多态概念
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。
多态存在的必要条件
3多态的存在有3个必要条件:继承,方法重写,父类引用指向子类对象。
代码示例
package object;
/**
* 测试多态
* @author 隔壁小王
*
*/
public class TestPolym {
public static void main(String[] args) {
Animal a = new Animal();
animalCry(a);
Animal d = new Dog();
animalCry(d);
}
static void animalCry(Animal a) {//多态的使用使得不用针对每种子类对象写
a.shout(); //对应方法,JVM会自己判断
}
}
class Animal{
public void shout() {
System.out.println("叫了一声!");
}
}
class Dog extends Animal{
public void shout() {
System.out.println("汪汪汪!");
}
}
class Cat extends Animal{
public void shout() {
System.out.println("喵喵喵!");
}
}
代码结果与说明
1.结果
2.说明
第一个animal(是一个animal对象)使用的是父类方法;
第二个animal(是一个dog对象)使用的是子类方法。