1、面向对象三个特性
封装、继承和多态。
2、多态的现实中的例子
鸟是一只鸟,猫是一只猫。
同样鸟是一只动物,猫也是一只动物。
3、多态的转型
向上转型和向下转型
4、举例说明
分别创建三个类,一个Animal类、Cat类、Bird类
在这里animal类为Bird和Cat的父类
Animal类如下
有私有属性 name和type,方法move
Cat类如下
Bird如下
5、多态语法
父类型的变量引用子类型的对象
在上述例子中:
Animal animal1=new Cat(" “,” “);
Animal animal2=new Bird(” “,” ");
6、详解
A、动物类里有的属性以及方法是整个动物大体拥有的,但是子类有一些属性和方法是特有的,这时候怎么办?
比如上面的例子,动物类的move,我们定义父类是输出move,但是鸟类是fly,我们可以通过重写父类中的方法把动物类的move输出“fly”。
因此我们在创建了两个动物类型引用猫和鸟对象变量之后,我们的方法输出的是各自重写后的方法。
多态是向上转型的,将子类对象向上转型成父类型,这个过程不用强制转换。
B、如果我们想猫可以飞,给他添加了一个特有的方法,我们怎么去调用呢?
我们知道如果用父类型去引用子类型变量的话,是无法调用子类型特有的方法的,我们只能通过向下转型来实现。
只有这样才能调用猫类的fly方法
向下转型必须强制类型转换,并且向下转型是不安全的。
7、总结
面向对象三大特性的多态,总而言之,是将父类型变量引用子类型对象,也是现实事物的一种代码实现。更多地了解现实中的例子能够更好理解多态。