目录
1.什么是多态?
多态首先是建立在继承的基础上的,先有继承才能有多态。多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。多态成立的另一个条件是在创建子类时候必须使用父类new子类的方式。
比如猫和狗都是动物,即
Animal dog = new Dog(); //创建一只狗对象
这时多态就产生了。所谓多态: 对象具有多种形态,对象可以存在不同的形式.
2.特点
把子类对象赋给父类变量,在运行时期会表现出具体的子类特征(调用子类的方法)。
Animal a = new Dog();
3.向上转型和向下转型
3-1向上转型
父类引用指向子类实例对象,转型后,可以调用父类派生给子类的方法,但不能调用子类独有的方法。(包括子类中的重写方法)
Animal a = new Dog();
3-2向下转型
又叫做强制转型,子类引用指向父类对象,需要强制类型转换,可以调用父类派生给子类的方法和子类重写的父类的方法,可以调用子类独有的方法。
步骤:先进行向上转型,然后再向下转型
father two=new son();
son two1=(son)two;
下面两种形式都不行:
father two=new father();
son two1=(son)two;
//也不能下面那样
son two=new father();
4.instanceof运算符
它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
5.equals方法
测试两个对象是否相等。