在面向对象的编程语言中,有三个特性,分别为:封装、继承和多态。实现多态的前提是继承,多态的作用是消除类型之间的耦合关系。对于多态,我们常说的词有两个,分别为:向上转型和向下转型。
我们把对某个对象的引用视为其基类型的引用的做法,称之为向上转型;把对某个对象的引用视为其导出类型的引用的做法(把父类对象转成子类对象),称之为向下转型。
Animal animal = new Cat();//向上转型
向上转型时注意:
- 子类中单独定义的方法会丢失。(同样不能覆盖私有方法)
- 子类引用不能指向父类的对象。
Animal animal = new Cat();
Cat cat = ((Cat) animal);//向下转型
向下转型时注意:
- 向下转型要先向上转型(父类对象指向子类对象)