博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础知识总结--多态
阅读量:5153 次
发布时间:2019-06-13

本文共 1075 字,大约阅读时间需要 3 分钟。

面向对象编程的三大特性:封装、继承、多态

封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据,而外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。

继承是为了重用父类的代码,两个类若存在IS-A关系就可以使用继承,同时继承也为多态的实现做了铺垫。

多态指的是程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定即一个引用变量到底会指向那个类的实例对象,该引用变量发出的方法调用到底是那个类中实现的方法,必须在由程序运行期间才能确定。因为在程序运行时才确定具体是哪一个类,这样就不用修改程序代码,就可以让引用变量绑定到各种不同的类实现上,那么该引用所调用的具体方法随之而变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

   指向子类的父类引用由于向上转型了,所以它只能访问父类中拥有的方法和属性,而对于子类中存在的但是子类中不存在的方法,该引用是不能使用的,尽管是重载的方法也不行。若子类重写了父类中的某些方法,在调用这些方法的时候,一定是使用子类中重写的方法。

注意:

   对于面向对象 而言,多态分为编译时多态运行时多态其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后就会变成两个不同的函数,这种情况称不上运行时编译。但是运行时多态 是动态的,它是通过动态绑定来实现的,也是我们说的多样性。

多态的实现

一、实现的三个必要条件:继承、重写、向上转型

继承:在多态中必须有继承关系的子类和父类。

重写:子类对父类中某些方法进行重写,再调用这些方法的时候就会调用子类的方法。

向上转型:在多态中需要将子类的对象赋给父类的引用,这样该引用才能够具备调用父类的方法和子类的方法的功能。

二、实现的形式:继承和接口。

基于继承实现的多态:基于继承的实现机制主要表现在父类和继承该父类的一个或者多个子类对某些方法的重写,多个子类对于统一方法的重写可以表现出不同的行为。

基于接口实现的多态:继承是通过重写父类的同一方法的几个不同子类来体现的,接口就是通过实现接口并覆盖接口中同一方法的几个不同类体现的。在接口的多态中,指向接口 的引用实例必须是实现了该接口的一个类的实例程序,在运行时,根据引用对象的实际类型来执行对应的方法。相对于继承来说具有更好的灵活性。

转载于:https://www.cnblogs.com/BaoZiY/p/10146057.html

你可能感兴趣的文章
第九周作业
查看>>
MiniMagick
查看>>
css important
查看>>
KindEditor图片上传到七牛云
查看>>
JavaScript---Promise
查看>>
暖暖的感动
查看>>
[转] C语言的谜题
查看>>
Java中的日期和时间
查看>>
禁用windows2000.2003启动时的CTRL+ALT+DEL
查看>>
Django基于admin的stark组件创建(一)
查看>>
快速幂 模板及应用
查看>>
批处理/DOS命令删除文件夹下某类型的文件
查看>>
模板 - 数学 - 矩阵快速幂
查看>>
优秀的持久层框架Mybatis,连接数据库快人一步
查看>>
线段树 延迟更新
查看>>
CentOS的IP配置专题
查看>>
基于WCF大型分布式系统的架构设计
查看>>
Bat文件注册组件
查看>>
Autoit 3 常用的语句
查看>>
PAT L2-016 愿天下有情人都是失散多年的兄妹
查看>>