Java中多态的用法有哪些-创新互联

这期内容当中小编将会给大家带来有关Java中多态的用法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为祁东企业提供专业的成都网站建设、成都做网站,祁东网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

多态性是通过:

1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的

2 父类和继承父类并覆盖父类中同一方法的几个不同子类实现的.

一、基本概念

多态性:发送消息给某个对象,让该对象自行决定响应何种行为 。通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用 。

java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法 。

如果a是类A的一个引用,那么,a可以指向类A的一个实例,或者说指向类A的一个子类 。

如果a是接口A的一个引用,那么,a必须指向实现了接口A的一个类的实例 。

二、Java多态性实现机制

SUN目前的JVM实现机制,类实例的引用就是指向一个句柄(handle)的指针,这个句柄是一对指针:

一个指针指向一张表格,实际上这个表格也有两个指针(一个指针指向一个包含了对象的方法表,另外一个指向类对象,表明该对象所属的类型);

另一个指针指向一块从java堆中为分配出来内存空间 。

三、总结

1、通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用 。

DerivedC c2=new DerivedC();
BaseClass a1= c2; //BaseClass 基类,DerivedC是继承自BaseClass的子类
a1.play(); //play()在BaseClass,DerivedC中均有定义,即子类覆写了该方法

网站栏目:Java中多态的用法有哪些-创新互联
链接分享:http://scyanting.com/article/dcohho.html