多态跟属性无关 多态是指方法的多态 而不是属性的多态
什么是多态
就是多种状态 同一个行为 不同的子类表现出不同的形态
多态指的是同一个方法调用 由于调用对象不同会产生不同的行为
多态的好处
提高代码的扩展性 符合面向对象的设计原则 开闭原则
开闭原则指的是 扩展是开放的 修改是关闭的
多态的三个要素
继承 重写 父类引用指向子类对象
Dod d = new Dog();
Animal a = d;
上面代码 dog是子类 父类的animal
将上面的代码合为一句话就是
Animal an = new Dog();
等号左侧的是编译期的类型
等号右侧的是运行期的类型
上面的代码也是多态的一种非常常见的应用场合 父类当方法的形参 然后传入的是具体子类的对象 然后调用同一个方法 根据子类传入的类型的不同展现出来的效果不同 形成了多态
先写父类 再写子类---》继承
先写子类 再写父类---》泛化