Java中多态的用法有哪些
这期内容当中小编将会给大家带来有关Java中多态的用法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
多态性是通过:
1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的
2 父类和继承父类并覆盖父类中同一方法的几个不同子类实现的.
一、基本概念
多态性:发送消息给某个对象,让该对象自行决定响应何种行为 。通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用 。
java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法 。
如果a是类A的一个引用,那么,a可以指向类A的一个实例,或者说指向类A的一个子类 。
如果a是接口A的一个引用,那么,a必须指向实现了接口A的一个类的实例 。
二、Java多态性实现机制
SUN目前的JVM实现机制,类实例的引用就是指向一个句柄(handle)的指针,这个句柄是一对指针:
一个指针指向一张表格,实际上这个表格也有两个指针(一个指针指向一个包含了对象的方法表,另外一个指向类对象,表明该对象所属的类型);
另一个指针指向一块从java堆中为分配出来内存空间 。
三、总结
通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用 。
DerivedC c2=new DerivedC();BaseClass a1= c2; //BaseClass 基类,DerivedC是继承自BaseClass的子类a1.play(); //play()在BaseClass,DerivedC中均有定义,即子类覆写了该方法
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
Java中多态的用法有哪些
下载Word文档到电脑,方便收藏和打印~
相关文章
- 为什么在爬虫开发中更倾向于选择 Java?(为什么选择java做爬虫开发)
- 如何实现 Java 中两个 List 的交集?(java两个list取交集怎么实现)
- Java 中哪些字符需要进行转义?(java需要转义的字符有哪些)
- 如何在 Java 中调用类方法?(java怎么调用类方法)
- 如何在同一项目中巧妙地混合使用 Node.js 与 Java?(如何在同一项目中混合使用Node.js与Java)
- 如何在 Java 中设置时间间隔?(java怎么设置时间间隔)
- 如何解决 Java 反向代理错误?(java反向代理错误怎么解决)
- Java 中的 trimend 在大数据处理中是如何应用的?(Java trimend在大数据处理中的应用)
- Java 中字符串数组初始化的方式有哪些?(java字符串数组初始化的方法是什么)
- 在 Java 中,enum 能否继承其他类?(java中enum可以继承其他类吗 )