期中作业-多态

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、总结

面向对象三大特性的多态,总而言之,是将父类型变量引用子类型对象,也是现实事物的一种代码实现。更多地了解现实中的例子能够更好理解多态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值