面向对象编程有4大特征:抽象,继承,封装,多态。
什么是多态
多态又叫做动态绑定或者迟绑定,是运行期间根据所引用的具体对象类型来调用相应的方法。
多态的条件
1.要有继承
2.子类重写父类的方法。
3.父类引用指向子类对象。
转型
1.向上转型:比如Dog继承Animal,Animal a = new Dog();(其实就是父类引用指向子类对象)。
2.向下转型:在向上转型后再转回来就是向下转型。 Animal a = new Dog();Dog dog = (Dog)a;
原则
多态一定是父类引用指向子类对象,如果反过来就会有问题。
比如Dog dog = (Dog)new Animal();编译时没问题,但是会在运行时报错。