java多态性怎么理解,Java什么叫多态
如何解决写爬虫IP受阻的问题?立即使用。
本教程运行环境:windows7系统,java8版本8,DELL G3电脑。
多态概述
1、多态是面向对象继封装和继承之后的第三大特点。
2.多态性现实意义理解:
现实中的事情往往表现为各种形态,比如学生,学生是一类人,那么某个特定同学张三既是学生又是人,也就是两种形态出现。
作为一种面向对象的语言,Java也可以描述一个事物的各种形式。如果学生类继承了Person类,那么学生的对象既是学生也是人。
3.多态性为父类引用变量可以指向子类对象。
4.前提条件:必须有父子关系。
注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
5.多态的定义和格式。
定义:父类类型变量名=新子类类型();
6.理解:
多态性是同一行为具有多种不同表现或形式的能力。
多态是同一个接口,使用不同的实例执行不同的操作。
7.多态性的优势
消除类型之间的耦合关系。
替换性
膨胀性
连接
灵活性
简单化
8.多态的三个必要条件。
继承
重写
父类引用指向子类对象:Parent p=new Child();
:
多态中成员的特点
1.多态成员变量:编译运行时看左边。
fu f=new Zi();
system . out . println(f . num);//f是Fu中的值,只能得到父体中的值。2.多态成员方法:向左编译,向右运行。
fu f1=new Zi();
system . out . println(f1 . show());//f1的facade类型是Fu,但实际类型是Zi,所以调用重写的方法。
instanceof关键字
功能:用于判断一个对象是否属于某种数据类型。
注意:返回类型是布尔值。
使用案例:
fu f1=new Zi();
傅f2=新子();
if(Zi的f1实例){
System.out.println(f1是Zi的类型);
}
否则{
System.out.println(f1是儿子的类型);
}
多态的转型
多态性的变换可以分为向上变换和向下变换两种。多态本身就是向上转化的过程。使用格式:父类型变量名=新子类类型();
适用场景:当不需要面对子类类型时,可以通过提高扩展性或者利用父类的功能来完成相应的操作。
向下转换:已经向上转换的子类对象可以使用强制类型转换的格式,父类引用类型可以改成子类引用各种类型使用的格式:子类类型变量名=(子类类型)父类的变量;
适用场景:当你想使用特定于子类的函数时。
多态案例:
示例1: (理解多态,可以重点看这个案例)
包day0524
公共类演示04 {
公共静态void main(String[] args) {
people p=new Stu();
p . eat();
//调用唯一的方法
Stu s=(Stu)p;
s.study()。
//((Stu) p)。研究();
}
}
阶级人民{
public void eat(){
system . out . println( eat );
}
}
类Stu扩展人{
@覆盖
public void eat(){
System.out.println(吃水煮肉片);
}
公共无效研究(){
System.out.println(好好学习);
}
}
班主任延伸人{
@覆盖
public void eat(){
System.out.println(吃樱桃);
}
public void teach(){
System.out.println(认真教);
}
}例2:
题的运行结果是怎样的?
包day0524
公共类演示1 {
公共静态void main(String[] args) {
A A=new A();
a . show();
B B=new B();
b . show();
}
}
A级
公共void show(){
show 2();
}
public void show2(){
system . out . println( A );
}
}
B类扩展了A{
public void show2(){
system . out . println( B );
}
}
C类扩展了B{
公共void show(){
super . show();
}
public void show2(){
system . out . println( C );
}
}答案:A B
相关视频教程推荐:java视频教程以上是如何理解Java多态性的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。