java之多态
光环大数据教学模式至今被模仿,但从未被超越,光环大数据已经在行业领跑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培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!