多态(polymorphism)
多态: 同一个对象,在不同时刻表现出来的不同形态。
计算机运行时,相同的动作可能会在多个不同的类别对象,系统可根据不同类别中的对象,引发对应类别的方法,而有不同的行为。
举例: 猫
通常我们说:猫 cat = new 猫();
多态中说:动物 animal = new 猫();
这里的猫在上面表现的是猫态,下面表现的是动物态,这就是多态。
多态的前提和体现:
a、有继承/实现关系
b、有方法重写
c、有父类引用指向子类对象[例:动物 animal = new new 猫();]
多态中成员访问特点:
成员变量: 编译看左边,执行看左边
成员方法: 编译看左边,执行看右边
为什么成员方法和成员变量不一样: 成员方法有重写,成员变量则没有。
多态中的转型:
向上转型 从子到父、父类引用指向子类对象:[动物 animal = new Cat();]
向下转型 从父到子、父类引用转为子类对象: [Cat c = (Cat)animal;]
e.g.:Animal(父类) AnimalOperator(操作方法类) Cat(子类) Dog(子类) ploy_Demo(main)
Animal(父类):
public class Animal {
public void eat(