java多态基础_Java基础————Java多态

原标题:Java基础————Java多态

什么是多态呢?从字面上的意思去理解,就是多种形态,实际上呢,也就这么回事儿。

Java的多态有很多,我们直说一下,最常见的,方法的多态。

首先,来一段范例程序:

1692499bdcee6201d68db1bb3a6c1ac0.png

从上面的程序,可以看到,我写了4个名为test的方法,名字是一样的,不一样的只有参数和返回类型。这就是Java多态的一种表现形式。

这里要说一点,Java里面是不允许有相同的方法的。

那既然方法名都一样,那Java是怎么去判断这几个方法不一样的呢?

很简单,从源代码上面就能看出,只有方法名相同,参数类型和返回类型都是不同的,那Java是根据这个来判断的吗?(参数类型+返回类型+方法名) = 判断依据????对吗????

我们再看一个源码:

2fee98c1a47a04310210b6bf5d8085d8.png

从这上面就能看到,报错了。为什么呢?我的返回类型是不一样的啊。其实这里很好理解,如果我们光看源代码,这两个方法确实有不一样的地方但如果我们调用的时候呢?

9345109587de574f52891fa4707835e9.png

请问,哪一个是有返回值的,哪一个是没有返回值的?我们写的时候知道,但编译器编译的时候可不知道,它并不是我们肚子里的蛔虫。既然编译器它不知道是哪一个方法,那怎么办?结果只有报错咯。

所以说,使用返回类型来判断,是不可取的。那就是剩下的那几种组成了判断的依据吗?我们可以一个一个的尝试,我这里就偷懒,不试了,明确的说,Java判断方式是都一样的依据就是(方法名+参数类型)

这个判断的依据在Java中被称之为“方法签名”。

不过这里需要强调一点的是,我们刚才说的是参数类型,是类型!而不是参数。他们是有区别的。参数指的的参数本身。嗯,最简单的就是看代码:

2c16dceb3f44ee69f4d7df9f087392d6.png

报错了,简单一点来说就是。在方法签名的组成里,关于参数的,它只需要参数类型,也就是上面代码中String,什么参数名字,是否为不可变的,什么的一大堆,他都不管。这个也很好理解,

e40eb9f367985d30b94fd5b3b6dbfcdf.png

我们在调用的时候,这样写,那编译器怎么知道该调用哪一个方法呢?你又没写名字。

这是一个原因,还有一个原因就是。在Java1.7还是1.8,记不太清楚了,反正就是再这之前的Java版本,编译为字节码之后,参数名是会变化的。无论你写的名字是test、test1、tttt还是什么的,都会统一的根据顺序变为:arg0,arg1,arg2,arg3......

所以,方法签名中,要的只是参数类型,只要类型一样,他就默认的认为是同样的参数。

好了,多态我就讲这些东西。关于多态,还有很多的知识点,有兴趣的可以百度,我只讲了最常见的,最基本的。返回搜狐,查看更多

责任编辑:

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值