栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java多态

目录

一、概念

二、理解

三、多态的引入

四、多态的介绍

五、多态的两大转型

六、java的动态绑定机制

七、instanceof关键字


一、概念

多态意味着多种形式。使用父类对象的地方都可以使用子类的对象。简单来说,多态意味着父类型的变量可以引用子类型的对象,或者接口型的引用可以指向实现该接口的类型。JAVA的多态性的实现主要通过重载、重写和接口三种主要实现方式。 

二、理解

多态是同一个行为具有多个不同表现形式或形态的能力。

多态是同一个借口,使用不同的实例而执行不同操作。

三、多态的引入

 一个程序案例 Master类中有feed()方法  完成对宠物的喂食



在还没有学习多态之前,我们是通过 feed()方法的重载完成宠物的喂食 但是 如果宠物多就需要编写许多feed()方法 就会非常不方便。

==========================================================
下面是多态的一个应用 解决上述问题


发现结果都一样 只是把feed()方法的形参变成父类类型 就解决了feed()方法要重复编写的问题 这就是多态的一个应用

四、多态的介绍

定义:方法或对象具有多种形态。多态是建立在封装和继承基础之上的

1.方法的多态(案例说明->重载) 重写和重载就体现多态

2.对象的多态
(重要的几句话)

(1) 一个对象的运行类型和编译类型可以不一致

(2) 编译类型在定义对象时就确定了,不可以改变

(3) 运行类型是可以改变的

(4) 编译类型看 = 的左边 运行类型看 = 的右边

Animal animal = new Dog() //编译类型是Animal 运行类型是Dog

animal = new Cat() //编译类型还是Animal 运行类型是Cat

五、多态的两大转型

多态的向上转型

本质

父类的引用指向了子类的对象

语法

父类类型   引用名 = new 子类类型()

特点

① 可以调用父类中的所有成员但需遵守访问权限

②    不能调用子类中的特有成员

③ 最终运行效果看子类的具体实现

(案例说明特点)

多态的向下转型

语法

子类类型 引用名 = (子类类型) 父类引用

特点

① 只能强转父类的引用

② 要求父类的引用必须指向的是当前目标类型的对象(看下图 就是原本b指向B对象空间 如果要向下转型那么 b1的编译类型是B)

③ 可以调用子类类型中的所有成员 须遵守访问权限

六、java的动态绑定机制

1.当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定;

2.当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。

(案例说明) 

七、instanceof关键字

语法:
引用类型变量(object) instanceof 类(class);
作用:用来判断某个对象是否属于某种数据类型。(返回类型为布尔类型)
优点
多态隐藏了子类的类型,提高了代码的可扩充性,
缺点
只能使用父类的功能,不能使用子类的特有功能。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854403.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号