多态:具有多种表现形式。
多态的三要素:
1.继承
2.重写
3.父类引用指向子类对象(向上转型)
现有继承结构如下:Cooker类、Waiter类、Manager类继承Staff类。
work()为子类重写父类的方法,cookVip()为子类方法。
多态数组调用子类特有方法需要向下转型。
向下转型:子类的引用指向父类的引用
//多态:父类引用指向子类对象(向上转型) Staff[] staff={new Cooker(1001,"厨师1"), new Cooker(1002,"厨师2"), new Cooker(1003,"厨师3"), new Cooker(1004,"厨师4"), new Waiter(1101,"服务员1"), new Waiter(1102,"服务员2"), new Waiter(1103,"服务员3"), new Manager(1201,"经理1",1000)}; staff[0].work(); Cooker cooker=(Cooker)staff[0];//向下转型:子类的引用指向父类的引用 cooker.cookVip();