多态
AnimalPoly ap1 = new BirdPoly();package com.itcode.demo;
/**
* @author: 成都码到功成学员
* @description:
* 多态
* 多态条件:重写、继承、引用(父类引用子类对象)
*/
class AnimalPoly{
public void shout() {
System.out.println("动物叫");
}
}
// 多态条件:继承
class CatPoly extends AnimalPoly{
// 多态条件:重写
public void shout() {
System.out.println("喵喵");
}
}
class DogPoly extends AnimalPoly{
// 多态条件:重写
public void shout() {
System.out.println("汪汪");
}
}
class BirdPoly extends AnimalPoly{
// 多态条件:重写
public void shout() {
System.out.println("啾啾");
}
}
public class TestPoly {
public static void main(String[] args) {
DogPoly dp = new DogPoly();
// 多态条件:引用(父类引用子类对象)
animalShout(dp); // 汪汪
CatPoly cp = new CatPoly();
animalShout(cp);// 喵喵
BirdPoly bp = new BirdPoly();
animalShout(bp);// 啾啾
AnimalPoly ap = new AnimalPoly();
animalShout(ap);// 动物叫
// 当然也可以这样调用,效果也类似。
AnimalPoly ap1 = new BirdPoly();
animalShout(ap1);// 啾啾
}
// 父类引用指向子类对象并该父类引用调用子类重写的方法,此时就出现多态。
static void animalShout(AnimalPoly a) {
a.shout();
}
}对象转型
final
Last updated