首页 / JAVA / Java 从入门到进阶之路(十五)
Java 从入门到进阶之路(十五)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 从入门到进阶之路(十五),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3501字,纯文字阅读大概需要6分钟。
内容图文
![Java 从入门到进阶之路(十五)](/upload/InfoBanner/zyjiaocheng/649/6d8a39066d3f48e78a13434441eba01b.jpg)
在之前的文章我们介绍了一下 Java 中的接口,本章我们来看一下 Java 中类的多态。
在日常生活中,很多意思并不是我们想要的意思,如下:
1、领导:“你这是什么意思?”
小明:“没什么意思,意思意思。”
领导:“你这就不够意思了。”
小明:“小意思,小意思。”
领导:“你这人真有意思。”
小明:“其实也没有别的意思。”
领导:“那我就不好意思了。”
小明:“是我不好意思。”
2、电视剧《快把我哥带走》
妹:“你根本就不懂我。”
哥:“你不说我怎么懂你啊,”
妹:“真的懂不需要说出来,”
哥:“你说了我不就懂了吗?”
妹:“说出来有什么意思啊,我不说你也应该懂。”
哥:“我又不是算命的,我知道你几个意思啊,”
妹:“我没什么意思,”
哥:“确实没什么意思。”
妹:“现在我说话你觉得没意思了吗?”
哥:“是我说没意思?”
妹:“那我说没意思,就是没意思嘛?”
哥:“那你倒是告诉我你到底几个意思啊。”
。。。
对于不同的职业,当我们听到不同的词时也会想到不同的意思,比如 cut,对于医生来说就是动刀做手术,对于裁缝来说就是裁剪衣服,对于演员来说就是暂停表演,这就是多态作为行为的一种表现,还有当我们听到水这个对象时,作为业态可以洗脸,作为固态可以降温,作为气态可以蒸馒头,这就是多态作为对象的一种表现。
多态:
1、意义
1)同一类型的引用指向不同的对象时,有不同的行为 ----- 行为的多态。
2)同一对象被造型为不同的类型时,有不同的表现 ----- 对象的多态。
2、向上造型:
2.1)父类型的引用指向子类的对象
2.2)能造型成的类型有:父类型、实现的接口。
2.3)能点出来什么,看引用的类型
3、强制类型转换,成功的条件有两个:
3.1)引用所指向的对象,就是该类型
3.2)引用所指向的对象,实现了改接口
4、通过 instanceof 来判断引用是否是某种类型,instanceof 返回 boolean 结果,强转成功的条件时它为 true 的条件。
1 abstract class people { 2 abstract void cut(); 3 } 4 5 class doctor extends people { 6 void cut() { 7 } // 做手术 8 } 9 10 class actor extends people { 11 void cut() { 12 } // 停止表演 13 } 14 15 class barber extends people { 16 void cut() { 17 } // 理发 18 }
在上面的代码中,我们其实就是做了一个行为多态的代码,对于不同类型的人来说,cut() 方法具有不同的行为。
1 interface yetai { // 液态接口 2 void xilian(); 3 } 4 5 interface gutai { // 固态接口 6 void jiangwen(); 7 } 8 9 interface qitai { 10 void zhengmantou(); // 气态接口 11 } 12 13 class water implements yetai, gutai, qitai { 14 public void xilian() { 15 } 16 17 public void jiangwen() { 18 } 19 20 public void zhengmantou() { 21 } 22 }
在上面的代码中,我们创建了液态,气态,固态三个接口,并且每个接口都有各自的方法,然后我们通过各自的接口实例化 water,可以看出不同接口可以实现各自的 water 实例,但是并不能去访问另一个实例里的方法,这就是 同一对象被造型为不同的类型时,有不同的表现,但是如果我们非要调用其他接口里的方法呢,比如在上面的代码中我们非要让 yetai 的 water 具有 jiagwen 功能,当然在实际生活中确实有这样的功能,
我们可以通过强制类型转换的方法来实现上面的问题。如下:
1 public class HelloWorld { 2 public static void main(String[] args) { 3 yetai water = new water(); 4 gutai water1 = (gutai) water; 5 water1.jiangwen(); 6 } 7 } 8 9 interface yetai { // 液态接口 10 void xilian(); 11 } 12 13 interface gutai { // 固态接口 14 void jiangwen(); 15 } 16 17 interface qitai { 18 void zhengmantou(); // 气态接口 19 } 20 21 interface qitai1 { 22 void zhengmantou(); // 气态接口 23 } 24 25 class water implements yetai, gutai, qitai { 26 public void xilian() { 27 } 28 29 public void jiangwen() { 30 } 31 32 public void zhengmantou() { 33 } 34 }
我们通过 gutai water1 = (gutai) water; 将 yetai water 强转为 gutai water ,这样就可以实现 jiangwen 功能了。
内容总结
以上是互联网集市为您收集整理的Java 从入门到进阶之路(十五)全部内容,希望文章能够帮你解决Java 从入门到进阶之路(十五)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。