java多态机制

java的多态可以用两种方式实现

一,继承

二,接口

如何理解?

首先我在这里先表达一种观念,java的对象有两个很重要的东西,一个叫做表象,一个叫做本质。

即引用和对象本身。

比如我们

A a=new A();

a那么这个时候,表象叫做A,本质也是A。

再比如,B是A的子类(我们在这规定字母序大的是字母序小的子类)

这个时候我们

A a=new B()

那么这个时候,a的表象是A,本质则是B。这个叫做向上转型,java认为B可以转为A。

或许你要问,为什么要讲这个呢?

实际上,要明白多态,了解表象和本质的区别是最重要的。


好了,知道了对象和本质之后,我们进入下一环节。

java处理多态,实际上是根据一个“表”,什么表呢?

假设父类有三个函数,分别叫做

A1(),A2(),A3();//分别打印A1,A2,A3

子类B

重写了

A1()函数。//打印B1

其余两个函数没有重写

当我们用多态的时候,如果在子类中重写了该函数(函数名,参数都完全一致),那么就会调用子类的方法代码,如果没有重写,那么就会用父类的函数。

也就是说,父类提供这样的表,java根据我们的表找函数实体。

例如我们A a1=new B();

于是当我们调用 a1.A1(),a1.A2(),则打印顺序是B1,A2.

现在我们总结一下,就是java首先根据你的表象,在你的表象提供的函数列表中找同名同参数的函数,然后根据这个函数指向的函数实体,在你的对象本质中找函数实体来执行。

而所谓接口,其实就是在你的表象提供的函数列表中额外提供一项函数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值