当前位置

首页 > 热门IT语言 > Java > java之多态

java之多态

编辑: 来源: 时间: 2017-10-12 16:15 阅读:

  光环大数据教学模式至今被模仿,但从未被超越,光环大数据已经在行业领跑16年。16年来我们深入人心,每2~3个月回访企业,根据企业需求不断升级课程,提升教学服务等各项软实力。

Java作为大数据培训课程的技术基础,也是其中重要的课程之一,我们先来了解下

多态:一类事物的多种表现形态。人-男人女人

1.多态的体现:①方法的重载与重写②对象的多态性

2.对象的多态性:父类的引用指向子类的对象

Personp=newMan();//多态-向上转型

p.eat();

p.walk();//虚拟方法调用

//p.smoking();

Manman=(Man)p;//向下转型

man.smoking();

Java程序的运行分为两种状态:

在多态的情况下,编译时,“看左边”,看的是父类的引用(父类中不具备子类特有的方法)

运行时,“看右边”,看的是子类对象,实际运行的是子类重写父类的方法

————以上过程被称为“虚拟方法调用(动态绑定)”

3.多态的前提:①要有继承关系②方法的重写(完成虚拟方法调用)

4.引用数据类型之间的转换:

前提:要有继承关系

向上转型:子类转父类。系统自动完成转换

向下转型:父类转子类。需要使用强转符“(需要转换的类型)”

可能引发java.lang.ClassCastException

Personp=newMan();

Womanwoman=(Woman)p;//编译?YES运行?NO

5.Java为了解决上述问题,提供了相应的解决办法

instanceof运算符:

如:

pinstanceofMan:判断p引用指向的对象是不是Man的本类类型及Man的子类类型,如果是返回true

Personp=newMan();

if(pinstanceofWoman){

Womanwoman=(Woman)p;

}

二、多态的应用

多态的应用之一:多态数组

Person[]persons=newPerson[3];//该多态数组中可以存放Person本类类型的对象及Person子类类型的对象

persons[0]=newPerson();

persons[1]=newMan();

persons[2]=newWoman();

for(inti=0;i<persons.length;i++){

persons[i].eat();//虚拟方法调用

}

多态的应用之二:多态参数

//需求:展示一个男人吃饭和走路的功能

/*publicvoidshow(Manman){

man.eat();

man.walk()

}

publicvoidshow(Womanwoman){

woman.eat();

woman.walk();

}*/

publicvoidshow(Personp){//多态参数:当调用方法时,可以传递Person本类类型的对象及Person子类类型的对象

p.eat();

p.walk();//虚拟方法调用

if(pinstanceofMan){

Manman=(Man)p;

man.smoking();

}

}

大数据培训,就选光环大数据!

原创文章,转载请注明出处:光环大数据http://hadoop.aura.cn


大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服

你可能也喜欢这些

在线客服咨询

领取资料

X
立即免费领取

请准确填写您的信息

点击领取
#第三方统计代码(模版变量) '); })();
'); })();